欢迎光临散文网 会员登陆 & 注册

c++ 右值引用

2023-06-08 21:31 作者:无名_zhihui  | 我要投稿

右值引用

  • 左值引用

    常规引用,一般表示对象的身份。

  • 右值引用(重点)

    右值引用就是必须绑定到右值(一个临时对象、将要销毁的对象)的引用,一般表示对象的值。

    右值引用可实现转移语义(Move Sementics)和精确传递(Perfect Forwarding),它的主要目的有两个方面:

    • 消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。

    • 能够更简洁明确地定义泛型函数。

当声明了一个或多个特殊的成员函数(析构,拷贝构造,移动构造,拷贝赋值运算符,移动运算符)的时候,通常需要声明这些所有的函数,这称为“五规则”,可以为他们提供显示实现,也可以显示默认(=default)0或删除(=delete)他们。

引用折叠

  • X& &、X& &&、X&& & 可折叠成 X&

  • X&& && 可折叠成 X&&

例如:

有名称的右值引用 ,如右值引用参数,本身就是左值,因为它具有名称。例如void handleMessage(std::string&& Message) 中的message就是一个左值。

如果将临时变量赋值给右值引用,那么只有右值引用在作用域内,临时值的生命周期就会被延长。


c++ 右值引用的评论 (共 条)

分享到微博请遵守国家法律