盗衍 发表于 2025-6-2 23:26:25

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

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

一、什么是右值引用?

在 C++ 中:

[*]左值(Lvalue):有名字、有地址、可以被引用(如变量 x)
[*]右值(Rvalue):临时对象、没有名字、无法被再次引用(如字面值 5,表达式 x + y)
语法:

int&& r = 10; // r 是一个右值引用右值引用使用 && 定义。
二、为什么需要右值引用?

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

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

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

即息极 发表于 2025-10-16 08:43:49

谢谢楼主提供!

遑盲 发表于 2025-11-3 07:26:25

谢谢楼主提供!

余思洁 发表于 2025-12-1 12:44:05

用心讨论,共获提升!

喳谍 发表于 2025-12-11 04:24:12

很好很强大我过来先占个楼 待编辑

东门清心 发表于 2026-1-2 20:47:48

喜欢鼓捣这些软件,现在用得少,谢谢分享!

厨浴 发表于 2026-1-11 00:41:02

收藏一下   不知道什么时候能用到

伏滢 发表于 2026-1-20 11:03:43

懂技术并乐意极积无私分享的人越来越少。珍惜

顾星 发表于 2026-1-21 09:04:47

热心回复!

梭净挟 发表于 2026-1-26 11:04:31

谢谢分享,试用一下

明思义 发表于 2026-1-29 02:02:34

这个有用。

喳谍 发表于 2026-1-29 02:25:04

收藏一下   不知道什么时候能用到

骆贵 发表于 2026-1-29 06:11:11

过来提前占个楼

圣罩 发表于 2026-2-2 05:08:48

热心回复!

赖珊 发表于 2026-2-4 05:16:37

新版吗?好像是停更了吧。

简千叶 发表于 2026-2-7 07:35:23

新版吗?好像是停更了吧。

圣罩 发表于 2026-2-7 23:55:34

收藏一下   不知道什么时候能用到

秦晓曼 发表于 2026-2-7 23:56:07

谢谢楼主提供!

骆贵 发表于 2026-2-8 08:25:08

收藏一下   不知道什么时候能用到

上官银柳 发表于 2026-2-8 22:52:55

喜欢鼓捣这些软件,现在用得少,谢谢分享!
页: [1] 2
查看完整版本: C++11——右值引用&完美转发