A 类继承 B 类,A 类重写了 B 类的虚函数 B2,而 B 类的 B1 中调用了 B2,则 A 类使用 B1 时,运行时 B1 中的 B2 将执行 A 类中重写的虚函数B2。
例程如下:
#include
usingnamespace std;
class B
{
public:
void B1(void)
{
B2();
}
virtualvoid B2(void)
{
cout <<"Hello, B2"<< endl;
}
};
class A:public B
{
public:
virtualvoid B2(void)
{
cout <<"Hello, A"<< endl;
}
};
int main()
{
A *pA=new A;
pA->B1();
cout <<"Hello, world!"<< endl;
return0;
}
执行结果:
Hello, A
Hello, world!