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