带注册功能的单件(Singleton)模式的C++实现
来源:互联网 发布:网络推广电话销售话术 编辑:程序博客网 时间:2024/06/06 01:20
带注册功能的单件(Singleton)模式的C++实现
#include <iostream>
#include <string>
#include <map>
using namespace std;
class Singleton
{
public:
static void Register(string pName, Singleton* pItem);
static Singleton* Instance(string pName);
protected:
Singleton(){}
virtual ~Singleton(){}
private:
static map<string, Singleton* > m_Map;
};
map<string, Singleton* > Singleton::m_Map;
void Singleton::Register(string pName, Singleton* pItem)
{
m_Map.insert(make_pair(pName,pItem));
}
Singleton* Singleton::Instance(string pName)
{
Singleton* pItem = NULL;
map<string, Singleton* >::const_iterator iter = m_Map.begin();
while ( (iter!= m_Map.end()) && ( (*iter).first != pName) )
{
iter++;
}
if (iter != m_Map.end())
{
pItem = (*iter).second;
}
return pItem;
}
template<class Type>
class ConSingleton :public Singleton
{
public:
ConSingleton(string pName)
{
Register(pName, this);
m_strName = pName;
};
virtual ~ConSingleton(){};
void prt()
{
cout << m_strName <<endl;
}
private:
string m_strName;
};
int main()
{
ConSingleton<int>* pConSingleton = new ConSingleton<int>("wang");
ConSingleton<int>* p = (ConSingleton<int>*) Singleton::Instance("wang");
p->prt();
return 0;
}
- 带注册功能的单件(Singleton)模式的C++实现
- 带注册功能的单件(Singleton)模式的C++实现
- singleton 单件模式的实现
- Singleton(单件)模式的两种实现方法
- 单实例模式的实现(singleton)----单件
- c++--Singleton单例模式的实现
- 多线程安全的Singleton单件模式在C++,java与C#下的实现
- PHP 实现单件(singleton)模式
- Singleton单件模式的思考
- OGRE的单件模式 Singleton
- Singleton单件模式的思考(续)
- [C++] 单件模式的一般实现
- singleton pattern(单件模式)的几种实现方式
- 基于私有化构造器与析构器的单件模式(singleton) 实现及注释
- Singleton(单件)模式
- 单件模式(Singleton)
- 单件模式(Singleton)
- Singleton Pattern (单例or单件模式)的几种实现方式
- pager-taglib的安装和使用
- D兔提供伤感日志_不要随便牵手,更不要随便放手
- poj2488 A Knight's Journey
- A/D转换器的原理和结构
- 提出问题之后,对于回答问题内容的仔细确认!!!(一个字一个字确认!!)
- 带注册功能的单件(Singleton)模式的C++实现
- ++i,i++的效率探讨
- 高通Android display架构分析
- 多个构造函数时,有默认值的时候编译会出错
- 由爱而生,由生而爱,生生不息
- 资料收集(杂+持续积累)
- Android 开发从入门到精通
- java字符串处理方法全解
- 字符串的大小比较(某公司校园招聘面试试题)