Singleton(简单单件模式)C++代码
2008-11-26 11:01
375 查看
// Singleton.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
class CSingleton
{
private:
CSingleton(int nIndex)
{
this->m_nIndex = nIndex;
}
public:
~CSingleton()
{
}
public:
int GetIndex()
{
return this->m_nIndex;
}
static CSingleton* GetInstance(int nIndex)
{
if (NULL == CSingleton::m_pSingle)
{
CSingleton::m_pSingle = new CSingleton(nIndex);
}
return CSingleton::m_pSingle;
}
static void ReleaseInstance()
{
if (NULL != CSingleton::m_pSingle)
{
delete CSingleton::m_pSingle;
CSingleton::m_pSingle = NULL;
}
}
private:
int m_nIndex;
static CSingleton* m_pSingle;
};
//初始化静态成员变量
CSingleton* CSingleton::m_pSingle = NULL;
int _tmain(int argc, _TCHAR* argv[])
{
CSingleton* pSign = NULL;
int i = 0;
int nRand = 0;
::srand((unsigned)::time(NULL));
cout << "测试一" << endl;
for (i = 0; i < 10; i++)
{
nRand = ::rand() % 100;
pSign = CSingleton::GetInstance(nRand);
cout << "pSign->nIndex = " << pSign->GetIndex() << "/tnRand = " << nRand << endl;
}
//释放内存
CSingleton::ReleaseInstance();
cout << "测试二" << endl;
for (i = 0; i < 10; i++)
{
nRand = ::rand() % 100;
pSign = CSingleton::GetInstance(nRand);
cout << "pSign->nIndex = " << pSign->GetIndex() << "/tnRand = " << nRand << endl;
}
//释放内存
CSingleton::ReleaseInstance();
return 0;
}
//
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
class CSingleton
{
private:
CSingleton(int nIndex)
{
this->m_nIndex = nIndex;
}
public:
~CSingleton()
{
}
public:
int GetIndex()
{
return this->m_nIndex;
}
static CSingleton* GetInstance(int nIndex)
{
if (NULL == CSingleton::m_pSingle)
{
CSingleton::m_pSingle = new CSingleton(nIndex);
}
return CSingleton::m_pSingle;
}
static void ReleaseInstance()
{
if (NULL != CSingleton::m_pSingle)
{
delete CSingleton::m_pSingle;
CSingleton::m_pSingle = NULL;
}
}
private:
int m_nIndex;
static CSingleton* m_pSingle;
};
//初始化静态成员变量
CSingleton* CSingleton::m_pSingle = NULL;
int _tmain(int argc, _TCHAR* argv[])
{
CSingleton* pSign = NULL;
int i = 0;
int nRand = 0;
::srand((unsigned)::time(NULL));
cout << "测试一" << endl;
for (i = 0; i < 10; i++)
{
nRand = ::rand() % 100;
pSign = CSingleton::GetInstance(nRand);
cout << "pSign->nIndex = " << pSign->GetIndex() << "/tnRand = " << nRand << endl;
}
//释放内存
CSingleton::ReleaseInstance();
cout << "测试二" << endl;
for (i = 0; i < 10; i++)
{
nRand = ::rand() % 100;
pSign = CSingleton::GetInstance(nRand);
cout << "pSign->nIndex = " << pSign->GetIndex() << "/tnRand = " << nRand << endl;
}
//释放内存
CSingleton::ReleaseInstance();
return 0;
}
相关文章推荐
- 设计模式C++实现_1_Singleton设计模式(简单的实现)
- Singleton模式的C++实现研究(示例代码)
- 简单了解设计模式中的装饰者模式及C++版代码实现
- Singleton模式的C++实现研究(示例代码)
- 【读书笔记】HeadFirst设计模式——单件不简单:详述实现Singleton模式需要考虑的方方面面
- Singleton模式的C++实现研究(示例代码)
- JAVA:将反射技术应用于工厂模式(Factory)和单例模式(Singleton)的简单代码
- Head First设计模式 C++实现-Singleton(单件模式)
- Singleton模式的C++实现研究(示例代码)
- Singleton(简单的单件模式) C#源代码
- C++设计模式之五:SINGLETON(单件模式)
- 设计模式---单件(C++版) 一个简单实例(避免用户忘记delete单件实例)
- HEAD_FIRST设计模式学习 ----策略模式 c++简单实现代码
- C++设计模式之Singleton(单件/单例)模式
- C++ 单件模式的初探 [此文代码有误,未更改]
- C++中实现singleton(单例模式)的最简单写法
- (C++)设计模式------单例模式 singleton(简单的实现和对象释放的控制) -- 创建型模式
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式
- 大话设计模式中简单工厂模式和策略模式的商场收银软件实例的C++代码
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式