在C++中定义一个类,如果不明确定义拷贝构造函数和拷贝赋值操作符,编译期会为我们自动生成这两个函数。但是我们有时又希望禁止拷贝类的实例,这时可以私有化拷贝构造函数和拷贝赋值操作符即可。

class do_not_copy
{
private:
    do_not_copy (const do_not_copy &);
    void operator=(const do_not_copy &);
};

    Boost库已经提供了一个简单的方案,将设计的类继承自boost::noncopyable即可实现该类不可拷贝。noncopyable源码如下:

class noncopyable
{
protected:
    noncopyable() {}
    ~noncopyable() {}

private:
    noncopyable(const noncopyable &);// 私有化拷贝构造函数和拷贝赋值操作符
    const noncopyable& operator=(const noncopyable&);
};

 

相关文章:

  • 2022-12-23
  • 2021-12-01
  • 2021-06-03
  • 2021-12-31
  • 2022-12-23
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-18
  • 2022-12-23
  • 2020-07-27
  • 2021-11-06
  • 2022-12-23
相关资源
相似解决方案