C++ - 左值(lvalue)引用和右值(rvalue)引用 的 区别
2013-11-10 16:57
281 查看
左值(lvalue)引用和右值(rvalue)引用 的 区别
本文地址: /article/1384308.html左值引用, 即&i, 是一种对象类型的引用; 右值引用, 即&&i, 是一种对象值的引用;
std::move()可以把左值引用, 转换为右值引用;
左值引用是固定的引用, 右值引用是易变的引用, 只能引用字面值(literals)或临时对象(temporary object);
右值引用主要应用在移动构造器(move constructor)和移动-赋值操作符(move-assignment operator)上面;
代码如下:
/* * cppprimer.cpp * * Created on: 2013.11.7 * Author: Caroline */ #include <iostream> #include <utility> int main (void) { int i = 42; int &lr = i; int &&rr = i*42; const int &lr1 = i*42; int &&rr1 = 42; int &&rr2 = std::move(lr); std::cout << "i = " << i << std::endl; std::cout << "lr = " << lr << std::endl; std::cout << "rr = " << rr << std::endl; std::cout << "lr1 = " << lr1 <<std::endl; std::cout << "rr1 = " << rr1 << std::endl; std::cout << "rr2 = " << rr2 << std::endl; }
本文出自 “永不言弃” 博客,请务必保留此出处http://spikeking.blog.51cto.com/5252771/1388024
相关文章推荐
- C++ - 左值(lvalue)引用和右值(rvalue)引用 的 区别
- C++ 左值和右值,左值引用和右值引用
- [C/C++不常见语法特性]_[初级]_[左值-右值-lvalue-rvalue]
- C++ 左值引用和右值引用(C++11特性)
- c++中左值与右值的区别
- C++ 11中的左值引用和右值引用
- c++ 左值、右值、右值引用、左值引用
- c++中的左值与右值的区别
- C++ 左值、右值、右值引用
- 在C++中,为什么前自增操作生成左值,后自增操作生成右值?为什么有这样的区别?
- c++ 左值、右值、右值引用、左值引用
- C++左值引用和右值引用
- C++11的右值引用(一)——左值(lvalue),纯右值(prvalue)和将亡值(xvalue)
- 深入理解(实例) -- c++ 右值引用 左值引用
- C++中左值与右值引用———C++Primer读书笔记
- c++ 左值、右值、左值引用和右值引用
- C++ 左值引用与右值引用
- C++ 0x 之左值与右值、右值引用、移动语义、传导模板
- 在C++中,为什么前自增操作生成左值,后自增操作生成右值?为什么有这样的区别? .
- [C++]左值和右值(LValue and RVaule)