c++ noncopyable

1. C++11 前 noncopyable

class nocopyable {
protected:
  // 1.把构造和析构设置protected权限,子类可以调用,但是外面的类不能调用
  nocopyable(){};
  ~nocopyable(){};
private:
  // 2.把拷贝构造和赋值函数做成了private的,子类和外面的类都不能调用
  nocopyable(const nocopyable& );
  nocopyable& operator=(const nocopyable& );
};

2. C++11 后 noncopyable

利用c++11的关键字:=default, =delete

class noncopyable {
protected:
  // 1.把构造和析构设置protected权限,子类可以调用,但是外面的类不能调用
  nocopyable() = default; // 编译器对default函数自动生成默认函数体
  ~nocopyable() = default;
public:
  // 2.禁用拷贝构造和赋值函数
  noncopyable(const noncopyable&) = delete; // 编译器对delete函数禁用
  void operator=(const noncopyable&) = delete;
};

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 12:22:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 12:22:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 12:22:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 12:22:03       20 阅读

热门阅读

  1. 第三方支付法律困境及其保障机制分析

    2024-04-29 12:22:03       12 阅读
  2. Qt :Ordered Map

    2024-04-29 12:22:03       12 阅读
  3. ES8中Object方法-使用说明

    2024-04-29 12:22:03       11 阅读
  4. 双非二本找工作前的准备day13

    2024-04-29 12:22:03       11 阅读
  5. pytorch对音频数据的读取和保存

    2024-04-29 12:22:03       10 阅读
  6. Linux深入学习 - 进程

    2024-04-29 12:22:03       15 阅读
  7. stm32 boot脚设计

    2024-04-29 12:22:03       11 阅读
  8. FreeLearning Golang 译文集翻译完成

    2024-04-29 12:22:03       12 阅读
  9. C++——数据类型笔记

    2024-04-29 12:22:03       9 阅读