C++版
#include <iostream>
using namespace std;
class A{
    public:
        void p_fun(){
            this->pri_fun();
        }
    private:
        void pri_fun(){
            cout<<"A::pri_fun"<<endl;
        }
};
class B: public A{
};
class C: public A{
    private:
        void pri_fun(){
            cout<<"C::pri_fun"<<endl;
        }
};
int main(){
    B *b =new B();
    b->p_fun();         //输出 A::pri_fun
    C *c =new C();
    c->p_fun();         //输出 A::pri_fun
    return 0;
}我的问题:
B只继承了A的p_fun().this也是指向B的对象,为什么this可以调用A中的私有方法?
当C中覆盖了pri_fun()后,this为什么不是调用的C中的pri_fun(),却仍然是A中的pri_fun()?
这段代码,通过php、java测试,输出结果一直,都是输出 A::pri_fun
感觉应该是对this的理解不够深入,不了解面向对象在这其中的过程。请大家解惑。
 aluckdog
aluckdog 
					慕哥9229398
 
					尚方宝剑之说
 
					DIEA
 随时随地看视频慕课网APP
随时随地看视频慕课网APP
相关分类