继承和良好做法

时间:2012-11-22 00:34:31

标签: c++ inheritance

我的课程很少

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是treusure box
  • C is ax
  • D是剑

同一个类的每个对象都是相同的,所以这就是为什么我只想要一个int当然这只是一个例子而不是int我可以在那里例如类Gold实例:)

1 个答案:

答案 0 :(得分:1)

如果不需要更改,请使用枚举值。

无论如何,返回黄金并不是一个坏主意。如果它更复杂,您可以使用CRTP。从A继承的辅助模板和实现获得黄金。

您将B in作为模板参数传递,然后从中继承B.模板的方法可以静态地将其转换为B并使用B的状态。

对谷歌而言,CRTP非常容易。

请记住,返回黄金可能是最好的。