#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;
}
c++ 單例模式 private 成員初始化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.