gpt4 book ai didi

c++ - 函数返回引用,失败时返回什么?

转载 作者:太空狗 更新时间:2023-10-29 23:47:13 25 4
gpt4 key购买 nike

由于我设计了一个以插件为目标的框架,我将我的一部分代码实现为单例。此类负责处理与我从框架内通信的外部程序的连接。

启用外部通信是一个运行时设置,但是,如果它被禁用,我不想允许从框架内的模型访问它。我已经使用此处经常推荐的版本实现了它:

class Communicator {
public:
static Communicator& getInstance() {
static Communicator instance;
return instance;
}
// ...
private:
static bool ServiceEnabled;
// Constructors, operator=, etc ...
}

现在,鉴于 ServiceEnabledfalse,我不想让 getInstance 返回有效的 Communicator。但是由于我返回了一个引用,我不能简单地返回 0 或类似的东西......正确的行为是什么?请注意,即使 ServiceEnabled 为 false,继续执行也是完全有效的,所以我不能在它为 false 时中止。

最佳答案

添加一个公共(public)函数

static bool IsServiceEnabled();

并在 getInstance 中抛出异常,当 ServiceEnabled == false 被调用时;

关于c++ - 函数返回引用,失败时返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693413/

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