c++ 單例模式 private 成員初始化

#include <iostream> using namespace std; class Singleton { private: static Singleton* st; //static Singleton* st = NULL; //錯誤 Singleton(){} public: static Singleton* getInstance() { if (st == NULL) { st = new Singleton(); } return st; } void show() { cout << st << endl; } }; Singleton* Singleton::st = NULL; //正確,只能在類外初始化,如若不在此初始化會報連接錯誤 int main() { //Singleton* Singleton::st = NULL; //錯誤 Singleton* st = Singleton::getInstance(); Singleton* st1 = Singleton::getInstance(); if (st == st1) { cout << "兩個對象是相同的實例。" << endl; } return 0; }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章