执行如下代码:
class A
{
public:
void print(){ printf("A non-virtual\n"); } // 非虚函数
virtual void printV(){ printf("A virtual\n"); } // 虚函数
};
class B:public A
{
public:
void print(){ printf("B non-virtual\n"); } // 覆盖非虚函数
virtual void printV(){ printf("B virtual\n"); } // 覆盖虚函数
};
void main()
{
B b;
b.print();
b.printV();
A*pa = &b;
pa->print();
pa->printV();
}
执行结果为:
B non-virtual
B virtual
A non-virtual
B virtual