除了第一个返回对象和第二个返回存储 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/