還記得陳欠欠之前提到的
雞婆的
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)