您的位置:首页 > 编程语言 > C语言/C++

c++单例模式(线程安全)

2015-10-01 16:39 260 查看
1.构造函数为private,生成对象的时候,编译器调用构造函数属于外部调用。

2.构造函数为private不能被继承,因为当其子类初始化的时候需要调用构造函数,但此时构造函数为private,不能被调用。

所以,该类只有一个实例。

空间换时间

#include "stdafx.h"

#include <iostream>

using namespace std;

class Singleton

{

private:

Singleton() {};

static const Singleton* m_pSingleton;

public:

static const Singleton* GetInstance();

void Test() const;

};

const Singleton* Singleton::m_pSingleton = new Singleton;

const Singleton* Singleton::GetInstance()

{

/*if(NULL == m_pSingleton)

{

m_pSingleton = new Singleton;

}*/

return m_pSingleton;

}

void Singleton::Test() const

{

cout<<"Test"<<endl;

}

int _tmain(int argc, _TCHAR* argv[])

{

const Singleton* pSingleton = Singleton::GetInstance();

pSingleton->Test();

getchar();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: