最近公司的一個項目是做一款手遊的服務器端開發,使用的是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);
好了,先寫到這裡吧,以後有其他方便常用的宏定義再分享給大家,如果大家有更好的宏定義也可以跟帖回覆哦!
閱讀更多 一個程序員的奮鬥史 的文章