本节主要是通过将copy构造函数、copy assignment操作符声明为private,进而阻止人们去调用它。

然而C++11里面已经有了更好的做法  =delete来表明阻止生成。

条款06:若不想使用编译器自动生成的函数,就应该明确拒绝

 

 

 

通过base class 来阻止coping动作:

 

条款06:若不想使用编译器自动生成的函数,就应该明确拒绝

条款06:若不想使用编译器自动生成的函数,就应该明确拒绝

 

 

 

总结:

 

为驳回编译器自动(暗自)提供的机能,可将相应的成员函数声明为 private并且不予实现。使用像 Uncopyable这样的 base class 也是一种做法。

 

相关文章: