niv*_*292 1 c++ inheritance class
这可能是一个愚蠢的问题,但无论如何我不得不问.我有两个独立的抽象类:角色和敌人.野蛮人和死灵法师衍生自角色,骷髅和魔鬼都来自敌人.我的问题是我可以创建一个Character和Enemy派生的数组.我可以创建另一个类,让我们说像这样的实体:
class Entity : public Character, public Enemy {};
Run Code Online (Sandbox Code Playgroud)
然后我会创建一个指向敌人的指针数组.
我能以某种方式这样做:
Entity* p = new Barbarian;
Run Code Online (Sandbox Code Playgroud)
如果这是可能的,我想我需要一个虚拟析构函数.我怎么定义这个?
编辑:我的一个愚蠢的错误,继承应该是另一种方式,问题是它可以这样做吗?
这是相反的方式.您应该创建一个Entity抽象类.角色和敌人应该继承实体类.
class Character : public Entity
class Enemy : public Entity
Run Code Online (Sandbox Code Playgroud)
你提到的其他一切都很好.您需要创建一个Entity类的Array,并且对于每个Entity,您可以说ent = new Barbarian()或类似的东西.