C++ 从具有相同虚函数的父函数派生时如何调用子函数
假设我有一个父类:C++ 从具有相同虚函数的父函数派生时如何调用子函数,c++,inheritance,polymorphism,C++,Inheritance,Polymorphism,假设我有一个父类: Class Parent{ public: virtual void doSomething(){} } 和两个孩子: Class Son: public Parent{ public: void doSomething(){ // Do one thing } } Class Daughter: public Parent{ public: void doSomething(){ // Do another thing } } 如果我像这样设置
Class Parent{
public:
virtual void doSomething(){}
}
和两个孩子:
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
实例的引用,而是将对象分割成一个父
值