我有几节课
class A;
class B;
class C;
class D;
类 B、C、D 继承自 A。在我的问题中,我有多个类 B、C、D,并且每个类都有一个静态字段,例如
static int gold;
A类是抽象类,它有getGold()方法;
当然每个类B、C、D都有自己的静态字段
static int gold;
在每个类(B、C、D)中,我都以相同的方式实现
getGold()
{
return gold;
}
它是复制和粘贴,但我不知道如何让它变得更好。
例如B,C,D
- B是宝箱
- C是斧头
- D是剑
同一类的每个对象的成本都相同,所以这就是为什么我只想拥有一个 int 当然这只是示例而不是 int 我可以在那里使用例如 class Gold 实例 :)
最佳答案
如果不需要变化,请使用枚举作为值。
无论如何,返还金币是个不错的主意。如果它更复杂,您可以使用 CRTP。一个从 A 继承并实现的辅助模板。
您将 B 作为模板参数传入,然后从中继承 B。模板的方法可以将 this 静态转换为 B 并使用 B 的状态。
CRTP 很容易用 Google 搜索。
记住,返还金币可能是最好的。
关于c++ - 继承和良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504276/