实现一个单例模式,注意加红色的字体部分
#include <iostream>
using namespace std;
class Singleton
{
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
};
//如果我把下面这一行注释掉,则程序编译出错,说没有定义的引用.....为什么。。。。
Singleton* Singleton::_instance = 0; //这一行怎么可以在外面访问呢,它是private访问级呀
Singleton::Singleton()
{
cout<<"Singleton...."<<endl;
}
Singleton* Singleton::Instance()
{
if (_instance == 0)
{
_instance = new Singleton();
}
return _instance;
}
int main(int argc,char* argv[])
{
Singleton* sgn = Singleton::Instance();
return 0;
}