介绍
- (1)…什么是单例
1.只能有一个实例化的对象的类 - (2).单例有什么用
1.多线程的线程池的设计
2.系统中只需要一个窗口时才使用单例(无法重复创建)
3.一个操作系统只能有一个文件系统 - (3).单例怎么用
1.隐藏所有构造函数
2.静态成员内部调用构造函数实例化
3.提供一个静态函数来返回静态成员对象
源码
#include<iostream>
#include<string>using namespace std;
#if 1class single
{
public:static single& getinstance(){return s_instance;}
private:single(){}single(int data) :m_data(data){}single(const single&){}int m_data;static single s_instance;};
single single::s_instance(100);
#endif
#if 1
class singletol
{
public:static singletol* getinstance(){if (!s_instance){s_instance = new singletol(200);}return s_instance;}
private:singletol(){}singletol(int data) :m_data(data){}singletol(const single&){}int m_data;static singletol* s_instance;};
singletol* singletol::s_instance(NULL);
#endif
void main()
{
singletol *s1 = singletol::getinstance();singletol *s2 = singletol::getinstance();cout << &s1 << " " << &s2 << endl;
single &st1 = single::getinstance();single &st2 = single::getinstance();cout << &st1 << " " << &st2 << endl;system("pause");
}
运行结果
00F1F8B8 00F1F8AC
00E10694 00E10694
请按任意键继续. . .