首页 > 编程语言 >C++禁止函数拷贝和移动

C++禁止函数拷贝和移动

时间:2023-05-14 16:33:51浏览次数:40  
标签:COPY 函数 void MOVE C++ DISALLOW ClassName 拷贝 ClassA

#define DISALLOW_COPY(ClassName)     \
  ClassName(const ClassName&) = delete; \
  ClassName& operator=(const ClassName&) = delete
#define DISALLOW_MOVE(ClassName) \
  ClassName(ClassName&&) = delete;  \
  ClassName& operator=(ClassName&&) = delete
#define DISALLOW_COPY_AND_MOVE(ClassName) \
  DISALLOW_COPY(ClassName);               \
  DISALLOW_MOVE(ClassName)
class ClassA final {
 public:
  ClassA(){}
  ~ClassA() {}
  DISALLOW_COPY_AND_MOVE(ClassA);

  void Reset();
  void CopyFrom(const ClassA* src);
  void Swap(ClassA* other);

 private:
  void* buffer_;
  size_t buffer_size_;
};

标签:COPY,函数,void,MOVE,C++,DISALLOW,ClassName,拷贝,ClassA
From: https://www.cnblogs.com/sunwenqi/p/17399528.html

相关文章

  • MySQL8JSON数组函数之json_array_append、json_array_insert
    json_array_append、json_array_insert顾名思义就是向数组中追加和插入值,因为没有找到合适的例子,所以就使用官方的例子进行说明1、json_array_append向指定的位置后追加值,查询和修改的函数如下所示:updatetest_jsonsettest_json_array=json_array_append(test_json_array,......
  • 函数strncpy和memcpy的区别
    1定义1.1memcpyvoid*memcpy(void*destin,void*source,unsignedn);参数*destin----需要粘贴的新数据(地址)*source----要拷贝的数据(地址)unsignedn----拷贝数据的字节数1.2strncpchar*strncpy(char*destinin,c......
  • c++进阶项目—基于多态的职工管理系统
    一、管理系统需求公司中职工分为三类:普通员工、经理、老板显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责1、普通员工职责:完成经理交给的任务2、经理职责:完成老板交给的任务,并下发任务给员工3、老板职责:管理公司所有事务管理系统中需要实现的功能如下:1、退出管理程序:退......
  • ECMAScript6新特性【函数的扩展(函数参数的默认值、箭头函数、rest 参数、name 属性)
    ......
  • 基于Matlab/GUI的FIR数字滤波器设计:采用窗函数法、等波纹最佳逼近法设计实现低通、高
    基于Matlab/GUI的FIR数字滤波器设计:采用窗函数法、等波纹最佳逼近法设计实现低通、高通、带通、带阻等不同类型的FIR数字滤波器ID:19200669894180152......
  • 【C++11新特性】allocator空间配置类
    原文链接: http://blog.csdn.net/Xiejingfa/article/details/50955295今天我们来讲讲C++的allocator类。C++提供了new和delete操作符来管理动态内存空间。new操作通常需要完成两部分工作:一是在系统中申请内存空间,二是在分配的内存上构造对象。delete操作也通常需要完成对应的两......
  • 【C++新特性】nullptr关键字
    原文链接:http://blog.csdn.net/xiejingfa/article/details/50478512 熟悉C++的童鞋都知道,为了避免“野指针”(即指针在首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作。如果暂时不明确该指针指向哪个变量,则需要赋予NULL值。除了NULL之外,C++11新......
  • c++打卡第二十六天
    ①一、问题描述 二、设计思路①、我们可以定义long类型数,算出这个数的平方。②、我们可以判断这个数的位数,然后对平方数除余(数本身位数+1),得到一个余数,判断是否与自身数相等。③、如果相等就打印出来。三、流程图四、代码实现#include<iostream>#include<cmath>using......
  • C++11学习之auto
    原文链接: http://blog.csdn.net/xiejingfa/article/details/50469045 熟悉脚本语言的人都知道,很多脚本语言都引入了“类型自动推断”技术:比如python,可以直接声明变量,在运行时进行类型检查。随着C++11标准的发布,C++语言也引入了类型自动推断的功能,这就是我们今天要介绍的auto关......
  • 递归函数
    1.递归函数简单实例:2.递归函数注意点:python默认递归1000次 3.递归的两个阶段:回溯和递推 4.递归的实际应用场景:取出列表中所有的值 ......