gpt4 book ai didi

c++ - 继承和良好实践

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:00 24 4
gpt4 key购买 nike

我有几节课

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com