有时我们需要一个对象不能够被复制,不同于单实例对象,不可复制对象可以构造产生新的,只是已经产生的不能被复制而已
在C++中,通常有这样几种方法
1、将复制构造函数和赋值运算符重载函数设为private,这样对象就无法调用他们从而达到目的
2、使用C++11标准里面新增的一个方法,将复制构造和赋值运算符重载函数后面标记delete,比如Foo& operator=(Foo const&) = delete;
3、使用引入boost库的noncopyable类,继承自它就可以了,这种方法比较方便但是需要引入额外的库
综合来看,如果能够使用比较新的编译器版本能够支持C++11的话,使用C++标准的方法是比较好的,使用boost库和自己手动写复制构造函数和赋值运算符重载函数都是比较麻烦的