C++入门经典-例5.17-右值引用的定义
1:右值引用的定义:
类型 && i=被引用的对象;
左值与右值的区别在于,右值是临时变量,例如,函数的返回值,并且无法被改变。
当右值引用被初始化后,临时变量消失。
代码如下:
// 5.17.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int get()
{
int i =4;
return i;
}
int main()
{
int &&k =get()+4;
// int &i = get()+4; //出错
k++;
std::cout<<"k的值"<<k<<std::endl;
return 0;
}
View Code
运行结果:
右值引用知识可以初始化于右值,但右值引用实质上是一个左值,它具有临时变量的数据类型。
右值引用与左值引用的相同点如下:
(1)一个右值引用被初始化后,无法使用它再去引用另一个对象,它不能被重新约束。
(2)右值引用被初始化后,可以视作该变量类型的左值。