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

好了,先寫到這裡吧,以後有其他方便常用的宏定義再分享給大家,如果大家有更好的宏定義也可以跟帖回覆哦!


分享到:


相關文章: