首页 > 代码库 > C++笔记(11):拷贝控制(拷贝移动,构造赋值,析构)

C++笔记(11):拷贝控制(拷贝移动,构造赋值,析构)

控制对象拷贝,赋值,析构

  拷贝构造函数,移动构造函数

  拷贝赋值运算符,移动赋值运算符

  析构函数

 -------------------------------------------------------------------------------------------------------------------------------------

1. 拷贝构造函数:参数必须是引用类型&,一般是const的

    拷贝构造函数的第1个参数指的是对于自身类类型的引用

 2.拷贝赋值运算符:本质是运算符函数重载

 3.析构函数:释放和销毁对象,无返回值

 

 使用“=default”来显示的要求编译器生成合成版本的拷贝构造函数、拷贝赋值运算符、析构函数

 

 阻止拷贝:1)定义删除的函数:拷贝构造函数、拷贝赋值运算符使用“=delete”

      2)析构函数不能是删除的成员

     3)private拷贝控制:拷贝构造函数、拷贝赋值运算符使用“private”

 

 对象移动:对于某些拷贝后就销毁的对象,移动而非拷贝会大幅度提高性能

      新标准为了支持移动操作,引入了新的引用类型:右值引用:&&

      右值引用只能绑定到一个即将被销毁的对象上面:int &&r=42;右值引用(int &r=i 是一般的左值引用)

      或者使用标准移动函数move():int &&r=move(r1);

 

C++笔记(11):拷贝控制(拷贝移动,构造赋值,析构)