假设有一些类,都派生自一个名为 Animal 的基类:
Cat
Dog
Parrot
EveryAnimalInExistance
每个类都实现了自己的抽象方法,例如:
attack()
defend()
hunt()
breed()
然后有一个方法叫
observeAnimal(Animal* everyAnimalInExistance)
我如何从成千上万的潜在动物中通过任何潜在动物,然后简单地调用
everyAnimalInExistance.hunt();
据我了解,在 c++ 中,对象将被“切片”,它会尝试调用基类自己的方法,并且需要进行类型转换才能调用正确的方法。
我无法确定 RTTI 是否在项目的每个环境中都可用,因为它庞大且数量众多,有人能告诉我我应该采取的方法吗?