永发信息网

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

答案:1  悬赏:40  手机版
解决时间 2021-11-18 19:26
用c++写一个单例模式的例子
最佳答案
#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;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
老款福特蒙迪欧怠速怎么一直在1千转怎么降下
主题模型到底还有没有用,该怎么用
水性科天一桶2.5升的漆能喷多少面积
pgp 完美世界游戏礼包 怎么使用
撒加是怎么死的
汽车car是什么意思
一开五孔插座怎么接线(两根火线一个零线)
幼儿园新生秋游怎么劝说家长
根号52化简=多少
离婚后共同财产,一方长期占有怎么办
从南京高速麒麟枢纽到江宁北路出口有多少公里
身高168体重134斤胖不胖
请问二级配电箱与三级配电箱的区别是什么?
为什么年轻人喜欢听民谣音乐,因为它有种穷味
百度贴吧怎么保存楼主发的视频
推荐资讯
然后古文意思是什么意思
芭比之非凡公主的角色介绍
ios11骚扰拦截软件哪个好
银泰老总是谁??
桂林有什么招聘
地理中说大气对太阳辐射的削弱作用,大气是什
she is the girl_is always_red填空
java 怎么往一个数组里添加一个新的数值,忽
600根桩一个月干完需要多少旋挖钻机
1.6t同1.6v区别汽车发动机
遇见碰瓷的怎么办?碰瓷的故意倒在车前,说开
老婆和最好哥们偷情如何处理
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?