1、对于构造方法,如果没有声明任何一个构造方法,编译器会自动生成一个Default构造方法。
2、对于Copy构造方法,Copy赋值操作符,析构方法,如果没有声明,编译器会自动生成相应的方法。
3、如果不想使用编译器自动生成的构造方法,就明确表示拒绝。
4、对于Copy构造方法和Copy赋值操作符,使用private禁止外部访问,为了避免成员方法和友元方法访问,对这类方法只声明,不定义,这样的话,到调用Copy构造或者Copy赋值的时候,就会导致link错误。
boost库中的nonecopyable,就是这样一个类,如果想让自己的类禁止copy构造和copy赋值,继承nonecopyable就Ok了。