考虑下面这个简单的多态性...如何在多态中调用子对象的重载函数?
class Parent {
public:
someFunc() { /* implementation A */ };
};
class Child : public Parent {
public:
someFunc() { /* implementation B */ };
};
int main()
{
Parent* ptr;
ptr = new Parent();
ptr->someFunc();
delete ptr;
ptr = new Child();
ptr->someFunc();
delete ptr;
return 0;
}
至于我可以告诉大家,在这两种情况下执行一个将被调用。
如何根据ptr的动态类型调用someFunc的“派生”实现?
在我的真实代码中有很多子类型,所以使用dynamic_cast来检查每个子类是不实际的。