1. 单例模式
#include <iostream> 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 0; }
类的所有静态变量都必须在类的外部初始化,格式是:类型名 类名::变量名=初始值;而不管它是私有的还是公有的。