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;
 } 

  

posted @ 2019-10-16 13:59  ChunhaoMo  阅读(270)  评论(0编辑  收藏  举报