兩個有用的宏:“禁止類成員復(fù)制”以及“禁止隱式構(gòu)造”
禁止類成員復(fù)制,其核心就在于不允許類外部看見復(fù)制函數(shù),包括“拷貝構(gòu)造函數(shù)”、“operator =重載”。
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \禁止隱式構(gòu)造,則可以將默認(rèn)構(gòu)造函數(shù)隱藏起來,在大多數(shù)編譯器中也可以對構(gòu)造函數(shù)增加explicit關(guān)鍵字來避免隱式構(gòu)造。
private: \
TypeName(const TypeName&); \
TypeName& operator=(const TypeName&)
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \更多解釋詳見《More Effective C++》
private: \
TypeName(); \
DISALLOW_COPY_AND_ASSIGN(TypeName)
posted on 2010-08-11 00:34 volnet 閱讀(1435) 評論(1) 編輯 收藏 引用 所屬分類: C/C++