您的位置:首页 > 其它

单实例模式的实现(singleton)----单件

2005-06-03 20:04 423 查看
.h文件
class CSingleInstance
{
public:
CSingleInstance();
virtual ~CSingleInstance();
static CSingleInstance* fInstance();
static CSingleInstance* PsingleInstance;
char buffer[2];
};
.CPP文件
#include <string.h>
#include "SingleInstance.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSingleInstance::CSingleInstance()
{
}
CSingleInstance::~CSingleInstance()
{
delete PsingleInstance;
}
CSingleInstance* CSingleInstance::fInstance()
{
if( PsingleInstance == 0 )
{
PsingleInstance = new (CSingleInstance);
}
return PsingleInstance;
}
CSingleInstance* CSingleInstance::PsingleInstance = 0;
主函数:
#include <iostream>
#include <string>
#include "SingleInstance.h"
using namespace std;
void main()
{
CSingleInstance* rSingleInstance1 = CSingleInstance::fInstance();
strcpy(rSingleInstance1->buffer,"wangliwei");
int k = sizeof(rSingleInstance1->buffer);
cout<<"the buffer is ";
for(int i = 0; i < k; i++)
{
if (rSingleInstance1->buffer[i] != NULL)
{
cout<<rSingleInstance1->buffer[i];
}
else
break;
}
cout<<endl;
CSingleInstance* rSingleInstance2 = rSingleInstance1->fInstance();
strcat(rSingleInstance2->buffer,"19801004");
int m = sizeof(rSingleInstance2->buffer);
cout<<"the buffer is ";
for(int j = 0; j < m; j++)
{
if (rSingleInstance2->buffer[j] != NULL)
{
cout<<rSingleInstance2->buffer[j];
}
else
break;
}
cout<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: