同名虚函数的继承性

前言:感谢您浏览该博客文章,如有任何的疑问或者意见欢迎通过邮件进行交流,提供linux技术支持。本人是Linux的布道者。
邮箱:[email protected]


class Father
{
public:
    virtual void Test()
    {
        cout<<"cout Father Test"<<endl;
        TestB();
    }

    virtual void TestB()
    {
        cout<<"cout Father TestB"<<endl;
    }
};

class Son:public Father
{
public:

    virtual void TestB()
    {
        cout<<"cout Son TestB"<<endl;
    }
};
调用:
    Son* pSon=new Son();
    pSon->Test();
    pSon->TestB();

    Father* pFather=(Father*)pSon;
    pFather->Test();
    pFather->TestB();

结果:

cout<<"cout Son TestB"<<endl;
cout<<"cout Son TestB"<<endl;
cout<<"cout Son TestB"<<endl;
cout<<"cout Son TestB"<<endl;

总结:子类重新实例化虚函数,所以在实际的过程中,所以虚函数表记录的

肯定不是父类的函数,而是子类的函数过程。

你可能感兴趣的:(虚函数,public)