永发信息网

用c++写一个单例模式的例子

答案:1  悬赏:40  手机版
解决时间 2021-11-18 19:26
  • 提问者网友:斑駁影
  • 2021-11-17 18:45
用c++写一个单例模式的例子
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-11-17 19:27
#pragma once

class cPrintError
{
public:
cPrintError(void);
~cPrintError(void);

private:
static cPrintError *mp_PrintError;
public:
static cPrintError *CreateInstance();

public:
void ShowMsgBox_Digit(int i_digit);
void ShowMsgBox_Str(wchar_t *sz_str);
};

#define CPRINTERROR cPrintError::CreateInstance()

——————————————————————————————————

#include "StdAfx.h"
#include "cPrintError.h"

#include

cPrintError *cPrintError::mp_PrintError=NULL;

cPrintError::cPrintError(void)
{
}

cPrintError::~cPrintError(void)
{
if(mp_PrintError)
{
delete mp_PrintError;
mp_PrintError=0;
}
}

cPrintError *cPrintError::CreateInstance()
{
if(mp_PrintError==NULL)
{
mp_PrintError=new cPrintError();
if(!mp_PrintError)
{
assert(mp_PrintError);
return 0;
}
}

return mp_PrintError;
}

void cPrintError::ShowMsgBox_Digit( int i_digit )
{
if(!i_digit)
return;

wchar_t sz_buffer[32]={0,};
wsprintf(sz_buffer,TEXT("%d"),i_digit);
if(sz_buffer&&sizeof(sz_buffer)>0)
{
MessageBox(NULL,sz_buffer,TEXT("ERROR"),MB_OK|MB_ICONERROR);
}
else
{
assert(sz_buffer&&sizeof(sz_buffer));
return;
}
}

void cPrintError::ShowMsgBox_Str( wchar_t *sz_str )
{
if(!sz_str)
return;

wchar_t sz_buffer[64]={0,};
wsprintf(sz_buffer,TEXT("%s"),sz_str);
if(sz_buffer&&sizeof(sz_buffer)>0)
{
MessageBox(NULL,sz_buffer,TEXT("ERROR"),MB_OK|MB_ICONERROR);
}
else
{
assert(sz_buffer&&sizeof(sz_buffer));
return;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯