定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例
就类似于皇帝与臣子的关系,皇帝只能有一个,臣子可以有多个,皇帝能召见多个臣子,但是所有臣子只能访问一个皇帝。
class Emperor { private: Emperor() {} //构造函数私有化,不允许创建对象 public: //自行实例化并向整个系统提供这个实例 static Emperor * GetInstance() { static Emperor m_pInstance; return &m_pInstance; } static void say() { printf("皇帝只有一个!\n"); } }; int main() { Emperor *p1 = Emperor::GetInstance(); p1->say(); Emperor* p2 = p1->GetInstance(); p2->say(); Emperor &p3 = *Emperor::GetInstance(); p3.say(); }