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;
}
只有虚函数才适合重载,派生类重载非虚函数时,如果使用基类指针调用重载方法会产生混淆。换句话说,需要重载的方法,都是是虚方法。避免对派生的非虚函数进行重定义
最新推荐文章于 2024-05-05 16:32:39 发布