假设我有一个父类:
Class Parent{
public:
virtual void doSomething(){}
}
和两个 child :
Class Son: public Parent{
public:
void doSomething(){
// Do one thing
}
}
Class Daughter: public Parent{
public:
void doSomething(){
// Do another thing
}
}
如果我像这样设置一个子类的实例:
Parent obj = Son();
如何正确调用 Son
定义的 doSomething()
方法,而不是 Parent
中的空函数
最佳答案
为此,您需要使 Parent
声明成为指针或引用。
Parent* obj = new Son();
在当前的形式中,您将 obj
声明为 Parent
的实例。这意味着 Son()
的赋值不会创建对 Son
实例的引用,而是将对象切片为 Parent
值。
关于c++ - 从具有相同虚函数的父派生时如何调用子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808479/