通常,对象是通过实例化派生类进行分配的,但可以由指向基类的指针变量指向它,例如:

CRBase* poBase = (CRBase*)(new CRDerived);

如果 CRBaseCRDerived 都提供了 DoAction() 成员函数的不同实现,那么 poBase->DoAction() 会调用基类的实现。
但是,如果该成员函数被 virtual 关键字标记,则 poBase->DoAction() 会“多态地”调用派生类的实现。

Last modified: Thursday, 30 January 2025, 12:24 PM