【发布时间】:2015-03-16 23:39:35
【问题描述】:
我正在尝试在 C++ 中解决一个关于继承的问题,并想知道如何正确地去做。
我设置了 3 个课程: - 敌人(有成员数据:int Damage、int Health 和 int Level) - 狼 - 熊
我的继承方式是:狼是敌人,熊是敌人。换句话说,Wolf 和 Bear 都继承自 Enemy。
我想设置我的程序,以便当我创建一个新的敌人时:
Enemy anEnemy;
然后在 Enemy::Enemy() 构造函数中,它将随机决定该敌人是狼还是熊。
如何解决这个问题?我知道我必须在 Enemy::Enemy() 构造函数中生成一个随机数,并根据随机数的结果将敌人变成熊或狼。但我就是想不通如何将它(敌人)“变成”狼或熊。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
“但我就是想不通如何将它(敌人)“变成”狼或熊。” 你不会“将”这些实例变成狼或熊,但首先将这些(狼/熊)实例化。查看
std::unique_ptr<Enemy>或std::shared_ptr<Enemy>可以为您做什么。 -
查找“工厂”设计模式。
标签: c++ inheritance