小编n00*_*che的帖子

什么时候需要基类指针指向 C++ 中的派生类对象?

我知道在面向对象的编程语言中运行时多态有什么用。例如,基类Superhero对于定义Superhero可以在不同超级英雄中继承和扩展的基本抽象属性很有用,例如Batman

我也知道我们在有is-a关系的时候使用继承,比如Superman is-aSuperhero,我们可以用一个Base类指针来指向一个Derived类对象比如...

Superhero *h = new Spiderman();
Run Code Online (Sandbox Code Playgroud)

已验证。

但是我想知道在什么情况下我们需要做这样的事情,为什么我们不能只使用......

Spiderman *s_man = new Spiderman()
Run Code Online (Sandbox Code Playgroud)

什么情况或情况会迫使我们使用基类指针来保存子类对象。

如果有人能向我说明这一点,我将不胜感激。

c++ oop polymorphism inheritance virtual-functions

1
推荐指数
1
解决办法
734
查看次数

标签 统计

c++ ×1

inheritance ×1

oop ×1

polymorphism ×1

virtual-functions ×1