C++创建两个独立抽象类的派生类数组

niv*_*292 1 c++ inheritance class

这可能是一个愚蠢的问题,但无论如何我不得不问.我有两个独立的抽象类:角色敌人.野蛮人死灵法师衍生自角色,骷髅魔鬼都来自敌人.我的问题是我可以创建一个CharacterEnemy派生的数组.我可以创建另一个类,让我们说像这样的实体:

class Entity : public Character, public Enemy {};
Run Code Online (Sandbox Code Playgroud)

然后我会创建一个指向敌人的指针数组.

我能以某种方式这样做:

Entity* p = new Barbarian;
Run Code Online (Sandbox Code Playgroud)

如果这是可能的,我想我需要一个虚拟析构函数.我怎么定义这个?

编辑:我的一个愚蠢的错误,继承应该是另一种方式,问题是它可以这样做吗?

MPo*_*ops 6

这是相反的方式.您应该创建一个Entity抽象类.角色和敌人应该继承实体类.

class Character : public Entity

class Enemy : public Entity
Run Code Online (Sandbox Code Playgroud)

你提到的其他一切都很好.您需要创建一个Entity类的Array,并且对于每个Entity,您可以说ent = new Barbarian()或类似的东西.