最近公司的一个项目是做一款手游的服务器端开发,使用的是C++,不过为了以后的跨平台,所以使用的基本都是标准C++的东西,用到的一些网络库、线程库 等等也都是跨平台的,以后一一分享给大家,今天要给大家分享的是一些常用的宏定义,大家可以放到一个自定义的 h 头文件中,方便以后工程复用!
#ifndef SAFE_DELETE
#define SAFE_DELETE(p) { if(p){ delete(p); p = NULL; } }
#endif
#ifndef SAFE_DELETE_ARRAY
#define SAFE_DELETE_ARRAY(p) { if(p){ delete[] p; p = NULL; } }
#endif
#ifndef SAFE_RELEASE
#define SAFE_RELEASE(p) { if(p){ p->Release(); p = NULL; } }
#endif
#define PropertyBuilderByName(type, name)\
private:\
type m_##name;\
public:\
inline void set_##name(type v) {\
m_##name = v;\
}\
inline type get_##name() {\
return m_##name;\
}
那个反斜线 \ 不要丢了哈,宏定义中的 \ 表示换行的意思!
使用起来就很简单喽,比如我定义一个 CBox 盒子类,盒子肯定会有宽和高么,于是我就这样定义:
class CBox
{
public:
CBox();
~CBox();
PropertyBuilderByName(int, width);
PropertyBuilderByName(int, height);
};
CBox::CBox()
{
}
CBox::~CBox()
{
}
大家看到了吧,代码很简洁,使用起来也比较简单方便:
CBox box;
box.set_height(2);
box.set_width(3);
好了,先写到这里吧,以后有其他方便常用的宏定义再分享给大家,如果大家有更好的宏定义也可以跟帖回复哦!