gpt4 book ai didi

c++ - 有没有办法将 "inherit"设为 int 等基类型?

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

我有几个与此类似的结构:

struct Time64 {
int64_t Milliseconds;

Time64 operator+(const Time64& right) {
return Time64(Milliseconds + right.Milliseconds);
}
... blah blah all the arithmetic operators for calculating with Time64 and int64_t which is assumed to represent milliseconds

std::string Parse() {
fancy text output
}
}

现在我需要添加更多它们。本质上它们只是对任何基类的解释并定义所有运算符,这对它们来说真的很乏味。解释函数(例如示例中的“parse”)很重要,因为我在整个 UI 中都使用了它们。我知道我可以像这样将解释函数创建为独立的东西

std::string InterpretInt64AsTimeString(const Int64_t input) {...}

但是将这些函数称为类方法会使代码看起来更漂亮。

要是有一种方法可以“typedef Int64_t Time64”,然后通过向其中添加一些方法来扩展 Time64“类”就好了。

有什么方法可以比我现在正在做的事情更容易实现我想做的事情吗?

最佳答案

我想你想要BOOST_STRONG_TYPEDEF .你不能从 int 继承,因为 int 不是类类型,但你可以这样做:

BOOST_STRONG_TYPEDEF(int64_t, Time64Base);

struct Time64 : Time64Base {
std::string Parse() { ... }
};

关于c++ - 有没有办法将 "inherit"设为 int 等基类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844262/

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