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; }
類的所有靜態變量都必須在類的外部初始化,格式是:類型名 類名::變量名=初始值;而不管它是私有的還是公有的。