这可能是一个愚蠢的问题,但我还是不得不问。我有 2 个独立的抽象类:Character 和 Enemy。 Barbarian和Necromancer源自Character,Skeleton和Devil源自< strong>Enemy. 我的问题是我能否创建一个包含Character 和Enemy 的派生数组。我可以创建另一个类让 Entity 像这样:
class Entity : public Character, public Enemy {};
然后我将创建一个指向Enemy 的指针数组。
那我能以某种方式做到这一点吗:
Entity* p = new Barbarian;
此外,如果可能的话,我想我需要一个虚拟析构函数。我该如何定义它?
编辑:我犯了一个愚蠢的错误,继承应该是另一种方式,问题是可以这样做吗?
最佳答案
正好相反。您应该创建一个 Entity 抽象类。 Character和Enemy应该继承实体类。
class Character : public Entity
class Enemy : public Entity
您提到的其他一切都很好。您需要创建实体类的数组,对于每个实体,您可以说 ent = new Barbarian()
或类似的东西。
关于C++ 创建两个独立抽象类的派生类数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380563/