C++11右值引用和移动构造函数

该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105089274

右值引用和移动构造函数

  • 对象的拷贝控制
    • 移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment operator)。
  • 构造函数与赋值运算符的区别
  • 左值与右值的区别
  • 类型 && 引用名 = 右值表达式;
  • MoveSwap函数
  • Swap 函数
  • Move 语义

对象的拷贝控制

C++11之前,对象的拷贝控制由三个函数决定:拷贝构造函数(Copy Constructor)、拷贝赋值运算符(Copy
Assignment operator)和析构函数(Destructor)。

移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment operator)。

构造函数与赋值运算符的区别

构造函数在创建或初始化对象的时候调用,而赋值运算符在更新一个对象的值时调用。

左值与右值的区别

能出现在赋值号左边的表达式称为“左值”,不能出现在赋值号左边的表达式称为“右值”。一般来说,左值是可以取地址的,右值则不可以。
非 const 的变量都是左值。函数调用的返回值若不是引用,则该函数调用就是右值。一般的“引用”都是引用

你可能感兴趣的:(C和C++完整教程,c++,c语言)