标题: 虚函数调用优先级 [打印本页]

作者: heicc    时间: 2015-1-5 14:34
标题: 虚函数调用优先级
class   A
{
public:
    int aa;
    A() : aa( 1 ){}
    ~A(){}
    virtual void    ABC(){ aa    = 2; }
};
class   B : public A
{
public:
    B(){}
    ~B(){}
    virtual void    ABC(){ aa    = 3; }
};
class   C : public B
{
public:
    C(){}
    ~C(){}
};
class   D : public C
{
public:
    D(){}
    ~D(){}
};
a   = new D;//这时候aa的值为1,这是初始化的效果
a->ABC();//这时候aa的值为3,调用的是类B中的ABC()

思考结果:虚函数调用时,沿着继承逆方向寻找调用函数,中间有一个层次没有定义相应函数则会继续在其直接基类中寻找,依此类推。






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1