【面试】c++单例模式
阅读原文时间:2023年07月15日阅读:1

1. 单例模式

#include
using namespace std;

class CSingleton {
private:
CSingleton() {} // 构造是私有的
static CSingleton *m_pInstance;
public:
static CSingleton *GetInstance()
{
if (m_pInstance == NULL) {
m_pInstance = new CSingleton();
}
return m_pInstance;
}
};

CSingleton *CSingleton::m_pInstance = NULL; // 初始化静态数据成员

int main()
{
CSingleton *s1 = CSingleton::GetInstance();
CSingleton *s2 = CSingleton::GetInstance();
if (s1 == s2) {
cout << "s1 == s2" << endl;
}

return ;  

}

类的所有静态变量都必须在类的外部初始化,格式是:类型名 类名::变量名=初始值;而不管它是私有的还是公有的。