在其方法中获取singleton实例
Getting singleton instance inside its methods
我有一个简单的单例类:
class Singleton
{
public:
static Singleton& getInstance()
{
static Singleton instance;
return instance;
}
// private constructor, etc...
}
问题是我应该如何从类实例的成员函数访问它?我看到了各种各样的代码片段,现在我很好奇它们是否有任何显著的差异。
1.
void Singleton::something(){
Singleton &self = getInstance();
self.doSomething();
}
2.
void Singleton::something(){
this->doSomething();
}
3.
void Singleton::something(){
doSomething();
}
-
是不必要的复杂性-在像
something
这样的非静态成员函数中,我们已经有了一个实例,所以不需要单独获取它。 -
和3。相同,只有3个。更短且更惯用-在C++中使用
this->
访问成员并不常见。
我认为除了Singleton::getInstance();
之外,不应该有任何其他成员函数来获取类实例,因为这就是它存在的原因。按以下步骤操作:
Sungleton &dst=Singleton::getInstance();
事实上,并没有办法从非静态成员函数中获取实例。当没有类实例时,如何调用它的非静态成员。
相关文章:
- 从C++实例化QML
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- C++ Singleton - Prevent ::instance() to variable
- XCode 警告"此处需要实例化变量'Singleton:<Foo>:_instance',但没有可用的定义
- C++Singleton实例禁用重新调用
- 静态库中只有一个C 11 Singleton的实例
- 对Singleton的未定义引用::实例
- 在其方法中获取singleton实例
- 检查实例是否存在,并在Singleton getInstance();中返回引用;
- Windows 上的 c++ 共享库中的多个 Singleton 实例
- 作为静态字段的Singleton实例与getInstance()方法中的静态变量
- 在c++中,一旦程序退出,singleton(静态实例)就会被销毁,这是正确的原因
- Singleton实例释放
- 为singleton实例调用函数创建一个别名
- 我可以在C++中返回对该类中的静态类(singleton)实例的引用吗
- C++Singleton类创建多个实例