sla*_*ton 2 c++ polymorphism inheritance
假设我有一个父类:
Class Parent{
public:
virtual void doSomething(){}
}
Run Code Online (Sandbox Code Playgroud)
和两个孩子:
Class Son: public Parent{
public:
void doSomething(){
// Do one thing
}
}
Class Daughter: public Parent{
public:
void doSomething(){
// Do another thing
}
}
Run Code Online (Sandbox Code Playgroud)
如果我像这样设置一个子类的实例:
Parent obj = Son();
Run Code Online (Sandbox Code Playgroud)
如何正确调用doSomething()由Son而不是空函数定义的方法Parent
为此,您需要将Parent声明作为指针或引用.
Parent* obj = new Son();
Run Code Online (Sandbox Code Playgroud)
在它当前的形式你宣称obj是一个实例Parent.这意味着赋值Son()不会创建对Son实例的引用,而是将对象切片为Parent值.
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |