该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105089274
右值引用和移动构造函数
对象的拷贝控制
C++11之前,对象的拷贝控制由三个函数决定:拷贝构造函数(Copy Constructor)、拷贝赋值运算符(Copy
Assignment operator)和析构函数(Destructor)。
移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment operator)。
构造函数与赋值运算符的区别
构造函数在创建或初始化对象的时候调用,而赋值运算符在更新一个对象的值时调用。
左值与右值的区别
能出现在赋值号左边的表达式称为“左值”,不能出现在赋值号左边的表达式称为“右值”。一般来说,左值是可以取地址的,右值则不可以。
非 const 的变量都是左值。函数调用的返回值若不是引用,则该函数调用就是右值。一般的“引用”都是引用