编译器自动的函数:
- 默认构造函数
- 析构函数
- 拷贝构造函数
- 赋值构造函数(operator =)
有些场景中需要拒绝这些编译器自动生成的函数,可以通过下列方法,定义Uncopyable类并继承它。
拒绝使用编译器生成的函数:
class Uncopyable
{
protected: //允许derived对象析构
Uncopyable(){};
~Uncopyable(){};
private: //拒绝copy
Uncopyable(const Uncopyable&); //在这里声明,不用定义
Uncopyable& operator=(const Uncopyable&)
};
这样编译器就可以拒绝产生copy构造函数,和operator=。
版权声明:本文为BloodRose1991原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。