gpt4 book ai didi

c++ - 不可变接口(interface)的抽象类

转载 作者:行者123 更新时间:2023-11-28 06:21:29 25 4
gpt4 key购买 nike

想象一下,在 C++ 中定义一个表示自然数的接口(interface)。理想情况下是这样的:

class Nat {
public:
Nat();
virtual Nat next() = 0; // Bad
virtual int toInt() = 0;
};

这将提供定义各种具体实现的能力。问题在于,由于 Nat 是抽象的,因此 next 的签名无效。切换到可变版本会起作用,但这不是我希望完成的。解决此问题的更好方法是什么?

最佳答案

假设Nat s 是不可变的并且 next应该创建一个新对象,我认为这里最好的方法是返回一个 std::unique_ptr<Nat> , 治疗 next非常类似于工厂创建或克隆方法。

关于c++ - 不可变接口(interface)的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29235516/

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