c++ 右值引用
左值和右值
左值可以理解为可以取地址的对象,右值指的除左值外的值,这个地方不必过于纠结
左值引用
就是常见的 &+变量名
右值引用
当引用一个变量时可以使用
int A=10;
int & a=A;//这里就是左引用
但是有时我们需要引用一个立即数怎么办
int &a=10;//error
const int &a=10;//right,这里是常引用,这里是把这个10临时保存到内存中,随着程序到期后一起销毁
当c++加入右值引用后,可以把上面的操作变成
int && a=10;
右值引用可以进行读写操作,而常引用只能进行读操作。
右值引用的存在并不是为了取代左值引用,而是充分利用右值(特别是临时对象)的构造来减少对象构造和析构操作以达到提高效率的目的。