2

我的课很少

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 我可以在那里拥有例如类 Gold 实例 :)

4

1 回答 1

1

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

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

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

CRTP 对 Google 来说非常容易。

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

于 2012-11-22T00:43:20.360 回答