目录
在C++中,引用是一种用于别名机制的语言特性,允许程序员在不复制对象的情况下引用对象。C++有两种主要的引用类型:左值引用(lvalue reference)和右值引用(rvalue reference)。理解它们的区别和用法对编写高效、现代的C++代码非常重要。
左值引用(Lvalue Reference)
左值引用是最早出现的一种引用类型。它引用的是一个内存地址,可以理解为“有名字的、可持续存在的对象”。
定义和用法
左值引用的定义语法为:
Type& ref = variable;
示例
#include <iostream>
int main() {
int x = 10;
int& ref = x; // ref 是 x 的左值引用
ref = 20; // 改变 ref 的值也会改变 x 的值
std::cout << "x: " << x << std::endl; // 输出 20
return 0;
}
在上面的例子中,ref
是 x
的左值引用,所以对 ref
的修改也会反映在 x
上。
右值引用(Rvalue Reference)
右值引用是C++11引入的一种新引用类型。它引用的是一个即将被销毁的对象,可以理解为“临时的、无名字的对象”。
定义和用法
右值引用的定义语法为:
Type&& ref = temporary_object;