gpt4 book ai didi

c++ - 这是一个有效的单例类吗

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:26 26 4
gpt4 key购买 nike

如果我从 GetInstance() 返回对我的 MySingleton 实例的引用而不是我下面代码中的指针,它将有效,但以这种方式使用指针是否也有效?

我假设我的指针只会被初始化一次,因为它是静态的,但不确定。

我知道在单例中使用原始指针的正确方法是在分配之前检查指针是否首先为空,但想知道下面的代码是否也有效。谢谢

class MySingleton
{
public:
static MySingleton* GetInstance()
{
static MySingleton* inst = new MySingleton();
return inst;
}

private:
MySingleton(){};

};

编辑:我还没有看到在报告的重复问题中实现的 Singleton 的确切实现

最佳答案

只要满足以下任一条件,您的实现就可以接受(与其他任何实现一样):

  1. 您的单例不会获取任何外部资源(任何东西:文件句柄、网络连接、共享内存)超过单个异常安全方法调用的时间。

  2. 您的单例的最后一个用户手动删除实例。

否则可能会泄露一些严重的东西。

您可以将实例包装在一些自动的东西中,比如 std::unique_ptr,但这会立即引发常见的单例生命周期问题。

关于c++ - 这是一个有效的单例类吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751405/

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