c++ - 单例方法之间的区别

标签 c++ singleton

除了第一个返回对象和第二个返回存储 myclass 值的地址之外,这些方法之间有什么区别吗? 我问是因为我很少看到第一种方法,在许多来源中,即使是像 Aeonsoft 这样的大企业,我也总是看到使用方法 2。但是有些程序员不喜欢&return,请指教。

static myclass& getinstance()
{
    static myclass a;
    return a;
}

static myclass* getinstance()
{
    static myclass a;
    return &a;
}

编辑 哦,伙计们,我的错,我忘记了第一种方法中的 &

最佳答案

第一个没有意义,因为它返回一个拷贝。后者有点傻,因为不需要指针。

单例创建函数的通常方法是返回一个引用:

static Foo & getFoo()
{
    static Foo impl;
    return impl;
}

关于c++ - 单例方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605973/

相关文章:

c# - 单例与 GetSafeUninitializedObject

java - SIngleton对象初始化和依赖注入(inject)

c++ - boost 变体 : Is there magic in the binding order?

c++ - 在着色器中访问统一变量的任何尝试都会导致 Intel 芯片上的访问冲突

c++ - 将 c++ dll 导入 vb.net 时,float*(图像类型)的等效数据类型是什么?

C++ 使用 istringstream 从 stdin 读取

java - 使用枚举的单例

java - 单例模式的正确使用

c# - 如何在 Autofac 上注册单例

C++ 如何从虚拟设备中获取文件夹和文件名?