执行如下代码:
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
本文通过一个C++代码示例,深入解析了虚函数与非虚函数在类继承中的行为差异。演示了如何通过虚函数实现多态,以及非虚函数在派生类中的覆盖效果。
908

被折叠的 条评论
为什么被折叠?



