c++11 临时对象

对象类型名 + () 没有变量名

就是临时对象,是典型的右值

   

右值的生命周期是短暂的,右值具有两个特点

  • 所引用的对象即将被销毁;
  • 该对象没有其他用户。

这两个特点决定了,可以窃取右值对象的资源,这也为后面的移动构造函数移动赋值操作符的实现奠定了数据基础。

   

   

一般写法,定义一个vector

vector<int> v1(10, 666);

临时对象写法:

vector<int> (10, 666);

   

   

临时对象使用示例:

对二维vector进行赋值的时候可以用的上,例如

vector<vector<int>> v(10, vector<int> (10, 666));

vector (10, 666) 就是一个临时对象

   

   

   

   

   

202262314:40:44

要保存临时对象要用右值引用,右值引用的形式为&&,允许将右值绑定到引用,如:

auto&& p = vector<int> (10, 666)

   

   

int&& q = 6;

   

   

int func() {

return 6;

}

int&& ref = func();

 

posted @ 2022-08-30 21:19  atomxing  阅读(47)  评论(0编辑  收藏  举报