#include <iostream> using namespace std; class CBase { public: virtual void PureVirtualMethod() = 0; virtual void VirtualMethod() { cout << "Base version of virtual method" << endl; } void CommonMethod() { cout << "Base version of common function" << endl; } }; class CDerived : public CBase { public: void PureVirtualMethod() { cout << "Derived version of pure virtual method" << endl; } void VirtualMethod() { cout << "Derived version of virtual method" << endl; } void CommonMethod() { cout << "Derived version of common method" << endl; } }; int main() { CDerived testBase = CDerived(); CBase *b; b = new CDerived(); b->PureVirtualMethod(); b->CommonMethod(); b->VirtualMethod(); }
输出:
Derived version of pure virtual method
Base version of common function
Derived version of common method
类的继承中,对于虚函数的override与直接override是有区别的。