避免对派生的非虚函数进行重定义

来源:互联网 发布:linux hadoop1.2.1安装 编辑:程序博客网 时间:2024/05/18 21:38
class Foo{public:    void Print()    {        printf("Foo\n");    };};class Animal:public Foo{public:    void Print()    {        printf("Animal\n");    };};int main(){    Animal *an = new Animal();    Animal *p;    Foo *foo;    foo = an;    p = an;    foo->Print();          //vs断点,alt+8查看地址    p->Print();             //vs断点,查看地址两个地址不一样,不是虚函数,指针类型决定调用哪个函数    _getch();    return 0;}
只有虚函数才适合重载,派生类重载非虚函数时,如果使用基类指针调用重载方法会产生混淆。换句话说,需要重载的方法,都是是虚方法。
原创粉丝点击