C++实现一个类只有一个实例对象
2015-10-08 20:37
411 查看
class Base
{
public:
static Base *getInstance()
{
if (0==s) //s为0才调用构造函数,实例化一次成功后,s不再为0,除非将其释放掉,才能开始下一次实例化
s = new Base();
return s;
}
private:
Base() {}
static Base *s;
};
Base *Base::s = 0; //初始化一次
void main()
{
Base *s = Base::getInstance();//第一次如果实例化成功,那么s不再为0
Base *s1 = Base::getInstance();//实例化不成功,因为 s!=0,无法调用构造函数
}
{
public:
static Base *getInstance()
{
if (0==s) //s为0才调用构造函数,实例化一次成功后,s不再为0,除非将其释放掉,才能开始下一次实例化
s = new Base();
return s;
}
private:
Base() {}
static Base *s;
};
Base *Base::s = 0; //初始化一次
void main()
{
Base *s = Base::getInstance();//第一次如果实例化成功,那么s不再为0
Base *s1 = Base::getInstance();//实例化不成功,因为 s!=0,无法调用构造函数
}
相关文章推荐
- C---练习题部分2
- 有关++i和i++的效率之说
- C++复习:位运算
- C++_中的不可变类
- 移植 libuv 至 Visual C++ 6.0 并支持 Windows XP 编译系统
- 用C++编写dll并使用
- c++primer plus第十七章-文件输入和输出
- C++primer学习:再探迭代器
- 标准C++中的string类的用法总结
- 10-2总结
- C++中重载、重写(覆盖)和隐藏的区别
- 【c++ templates读书笔记】【6】模板的多态
- 【c++ templates读书笔记】【6】模板的多态
- C语言代码里不能用goto?
- C语言文件读写
- C++ for循环 纯指针遍历多维数组
- C++ string 用法总结
- c++线程注入学习
- C++ 设置自动启动
- C++学习笔记3 - 处理数据