C++ 单例是否每次都创建新实例?
does c++ singleton create new instance every time?
C++ 单例代码如下所示:
MyClass& MyClass::getInstance(){
static MyClass instance;
return instance;
}
具体看static MyClass instance;
是否每次调用 getInstance 时都会创建一个新的instance
?
编辑
我知道静态成员是一个class。但是,每次调用 getInstance()
时,static MyClass instance
不会重新声明(并因此重新创建)“单个”实例 instance
吗?
因为 MyClass
成员变量声明为 static
并且您返回的是对它的引用,而不是副本。静态成员变量不是像普通成员变量那样为每个对象创建的;相反,class.
的所有对象都可以访问该变量的一个实例
C++ 单例代码如下所示:
MyClass& MyClass::getInstance(){
static MyClass instance;
return instance;
}
具体看static MyClass instance;
是否每次调用 getInstance 时都会创建一个新的instance
?
编辑
我知道静态成员是一个class。但是,每次调用 getInstance()
时,static MyClass instance
不会重新声明(并因此重新创建)“单个”实例 instance
吗?
因为 MyClass
成员变量声明为 static
并且您返回的是对它的引用,而不是副本。静态成员变量不是像普通成员变量那样为每个对象创建的;相反,class.