c++11新特性之右值引用
我们说过一个变量分为两个部分,左值和右值
左值代表变量内存区域
右值代码内存区域所存的值
我们平时说的引用是左值引用,c++11引入了右值引用
右值引用就是绑定到右值上的引用。用&&进行定义
类型 &&引用名 = 表达式
我们看几个例子了解一下
double r = 10; double &r1 = r;//正确,左值引用 double &r2 = r + 10;//错误,左值引用右边必须是变量,不可以是表达式 double &&r3 = r;//错误,右值引用右边必须是常量或者表达式 double &&r4 = r + 10;//正确
右值引用的特点是只能绑定到即将销毁的对象上,如常量或表达式
#include<iostream>
using namespace std;
int main()
{
int x = 10;
int &r = x;
int &&rx = x + 10*3;
cout << "x = " << x << "\t rx = " << rx << endl;
x = 20;
cout << "x = " << x << "\t rx = " << rx << endl;
int y = rx;
cout << "y = " << y << endl;
return 0;
}


浙公网安备 33010602011771号