c++技巧之常用宏定义

最近公司的一个项目是做一款手游的服务器端开发,使用的是C++,不过为了以后的跨平台,所以使用的基本都是标准C++的东西,用到的一些网络库、线程库 等等也都是跨平台的,以后一一分享给大家,今天要给大家分享的是一些常用的宏定义,大家可以放到一个自定义的 h 头文件中,方便以后工程复用!


c++技巧之常用宏定义

#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);

好了,先写到这里吧,以后有其他方便常用的宏定义再分享给大家,如果大家有更好的宏定义也可以跟帖回复哦!


分享到:


相關文章: