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) 就是一个临时对象
2022年6月23日14:40:44
要保存临时对象要用右值引用,右值引用的形式为&&,允许将右值绑定到引用,如:
auto&& p = vector<int> (10, 666)
int&& q = 6;
int func() { return 6; } int&& ref = func(); |