// http://vdisk.weibo.com/s/dkyufB1yOD7Zm 23种设计模式说明pdf下载
// 说明:
// 1、为了不能被实例化,构造函数声明为 protected 或者直接声明为 private,如果使用new 则报错
#include <iostream>
using namespace std;
class singleton {
//构造函数
singleton() {
++test;
};
public:
int test=0;
~singleton() {};
static singleton &get_instance(){
static singleton instance;
return instance;
}
};
int main(int argv, char **args){
cout<<singleton::get_instance().test;
// singleton *fptr=new singleton();
// ‘singleton::singleton()’ is private within this context
return 0;
}
编译:g++ Singleton.cpp
结果:
[lzc@localhost test]$ ./a.out
1