创建网站的向导和模板 信息技术教资面试,泉州茶叶网站建设,河北衡水建设网站公司,开发板和单片机的区别目录 右值引用移动语义拷贝构造与移动构造 万能引用与完美转发 右值引用
左值#xff1a;可以出现在赋值符号的左边和右边#xff0c;左值可以取地址。 右值#xff1a;右值可以出现在赋值符号右边#xff0c;不能出现在左边#xff0c;右值不能取地址。 左值/右值引用就… 目录 右值引用移动语义拷贝构造与移动构造 万能引用与完美转发 右值引用
左值可以出现在赋值符号的左边和右边左值可以取地址。 右值右值可以出现在赋值符号右边不能出现在左边右值不能取地址。 左值/右值引用就是给左值/右值起别名。 int x 1, y 2;int r1 x;//左值引用const int r2 x y;//const左值引用可引用右值int rr1 10;//右值引用int rr2 x y;int rr3 move(x);//右值引用可引用move后的左值
移动语义
移动语义可以直接获取将亡资源减少拷贝
拷贝构造与移动构造
实际上在 func 返回时发生了两次拷贝这个过程编译器在这里做了优化 移动构造
万能引用与完美转发
完美转发能够保持原来的值属性不变
对于一个Object类有以下方法定义若不使用完美转发对象经过多层调用传递后值属性不能够保持
使用万能引用 universal reference 使用完美转发可保持原属性