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

标签 c++ class inheritance

这可能是一个愚蠢的问题,但我还是不得不问。我有 2 个独立的抽象类:CharacterEnemyBarbarianNecromancer源自CharacterSkeletonDevil源自< strong>Enemy. 我的问题是我能否创建一个包含CharacterEnemy 的派生数组。我可以创建另一个类让 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/

相关文章:

c++ - 在嵌套无序映射中插入或更新键

c++ - 为什么我们需要模板 <int N> 因为我们有类初始化

c++ - 创建 SpriteFont 时参数无效

eclipse - GWT Eclipse 不会将类编译成 war/WEB-INF/classes

c# - 虚拟基础成员看不到覆盖?

c++ - 模板 - 以列出的参数为条件

php - 如何使用(原始)FTP(CURL)获取 PHP 的 stat() 等详细信息?

来自 dict 理解引用子类的 Python 类变量

c++ - 基类中的静态变量是否由所有派生类共享?

class - 在 Scala 2.9 之后,case 类的哪些内容将被删除?