找回密码
 立即注册
首页 业界区 业界 C++11——右值引用&完美转发

C++11——右值引用&完美转发

盗衍 2025-6-2 23:26:25
总而言之,右值引用,完美转发,std::move()都是为了在程序运行过程中,避免变量多次重复的申请和释放内存空间,使用移动语义将申请的空间通过这几种方式进行循环使用,避免重新开辟新空间和拷贝浪费算力。
右值引用

一、什么是右值引用?

在 C++ 中:

  • 左值(Lvalue):有名字、有地址、可以被引用(如变量 x)
  • 右值(Rvalue):临时对象、没有名字、无法被再次引用(如字面值 5,表达式 x + y)
语法:
  1. int&& r = 10; // r 是一个右值引用
复制代码
右值引用使用 && 定义。
二、为什么需要右值引用?

传统的 C++(C++03)只有拷贝语义,会频繁复制对象,性能开销大。
右值引用的目的:

  • 避免不必要的拷贝
  • 支持移动语义
三、右值引用与移动构造函数

来看一个例子:
[code]#include #include using namespace std;class Buffer {public:    int* data;    size_t size;    Buffer(size_t s) : size(s) {        data = new int;        cout

相关推荐

您需要登录后才可以回帖 登录 | 立即注册