#define DISALLOW_COPY_ASSIGN(TypeName) \
TypeName(const TypeName&); \
TypeName operator = (const TypeName&);
class myclass
{
public:
explicit myclass(int n);
private:
DISALLOW_COPY_ASSIGN(myclass);
};
引用boost 库:
#include <boost/utility.hpp>
class myclass2 : boost::noncopyable
{
public:
explicit myclass2(int n);
};
自己实现:
class No_Copy_Assign
{
public:
No_Copy_Assign(void);
private:
No_Copy_Assign(const No_Copy_Assign&);
No_Copy_Assign& operator =(const No_Copy_Assign&);
};
//私有继承上面的类就可以实现,此方法参考ACE网络库和boost库
class myclass3: private No_Copy_Assign
{
some method here
};