C++ 11之 && 右值引用
来源:互联网 发布:淘宝宝贝推荐代码 编辑:程序博客网 时间:2024/05/18 00:09
最近在看cocos2dx的源代码,发现了一个模板类有一个奇怪的语法&&:
inline RefPtr(RefPtr<T> && other) { _ptr = other._ptr; other._ptr = nullptr; }
刚开始一阵犯晕,一个类型Ref<T>和一个似乎是形参的other与操作会得出一个什么?显然这种理解是错误的。。“&&”还有一种含义是右值引用,表示形参是一个右值。**左值 右值:**int a = 0;a是一个左值,左值是一个变量,可以被引用和多次使用。0是一个右值,不可以被引用。左值一般是非临时变量,可以多次使用。右值只在当前表达式有效。看一下右值引用的用法:
class MyClassB{public: void init(int & intval) { cout<<"use & print"<<endl;}; void init(int &&intval) { cout<<"use && print"<<endl;}};
int main(void){ int ae = 10; MyClassB().init(10); MyClassB().init(ae); return 0;}
可以看出,传入不同类型的值,编译器自动识别调用了不同的函数。
右值引用是用来支持转移语义的。转移语义可以将资源 ( 堆,系统对象等 ) 从一个对象转移到另一个对象,这样能够减少不必要的临时对象的创建、拷贝以及销毁,能够大幅度提高 C++ 应用程序的性能。临时对象的维护 ( 创建和销毁 ) 对性能有严重影响。
1 0
- [C++]C++11右值引用
- C++ 11之 && 右值引用
- C++11之右值引用
- C++11之右值引用
- c++11之左值引用和右值引用
- c++11之左值引用和右值引用
- C++/C++11中左值、左值引用、右值、右值引用的使用
- 【C++】C++11特性:右值引用与转发
- c++move语义与右值引用
- C++:右值引用与移动构造
- [C++]右值引用和转移语义
- C++primer学习笔记--右值引用
- 【C++】右值引用与模板
- C++11 理解 (三) 之 右值引用
- C++11标准之右值引用(rvalue reference)
- C++11标准之右值引用(ravalue reference)
- C++11标准之右值引用(ravalue reference)
- C++11新特性之 rvalue Reference(右值引用)
- 自制清理垃圾缓存软件
- hadoop elcipse/intelliJ win7配置详解
- 黑马程序员——java基础---面向对象
- 双向链表基本操作
- 欢迎使用CSDN-markdown编辑器
- C++ 11之 && 右值引用
- 8.16
- Oracle取上周一到周末日期的查询语句
- JDK,JRE,JVM区别与联系
- Pinot架构介绍
- OCP认证考试心得
- jhtsjsjsrkskdtellu;lf;
- socket常用函数解析(1)
- jquery.flexslider.js带左右箭头且带按钮可滚动的图片插件