還記得陳欠欠之前提到的
雞婆的
C++嗎?
這篇告訴我們一個該養成的好習慣,防止一些可以避免的錯誤。
我個人很喜歡這種基本功的文章,在學會pattern,refactor的路上,養成這些c++ primer會提到的好習慣(或優良程式設計師間的默契)或許同樣重要。
言歸正傳,自從看過
雞婆的
C++,
namespace noncopyable_ // protection from unintended ADL { class noncopyable { protected: noncopyable() {} ~noncopyable() {} private: // emphasize the following members are private noncopyable( const noncopyable& ); const noncopyable& operator=( const noncopyable& ); }; } typedef noncopyable_::noncopyable noncopyable; } // namespace boost
哈,其實就是欠提到的東西,我們把欠之前的code拿來改改玩玩。
#include "boost\noncopyable.hpp" using namespace boost; class TenBytes : boost::noncopyable { public: TenBytes() {mTenBytes = new char[10];} ~TenBytes() {if (mTenBytes) delete [] mTenBytes;} private: char *mTenBytes; //TenBytes(const TenBytes &inTenBytes); //done by boost::noncopyable //TenBytes& operator = (const TenBytes &inTenBytes); };
一樣的效果。
boost 有心~
回覆刪除有時間應該來K一下~
但不知道有沒有甚麼缺點~(好奇,直覺事情不可能完美的,要平衡報導一下 :P)