C++11新特性之右值引用(七)

2014-07-19 23:05:03 · 作者: · 浏览: 396

 

  int a=10;

  int b=5;

  show(a);

  show(a+b);

  show(a++); //右值引用

  show(++a); //左值引用

  show(b+100);

  show(100+200);

  }

  结果:

  需要注意的是:

  show(a++); //右值引用

  show(++a); //左值引用

  a++是先取出持久对象a的一份拷贝,再使持久对象a的值加1,最后返回那份拷贝,而那份拷贝是临时对象(不可以对其取地址),故其是右值;

  ++a则是使持久对象a的值加1,并返回那个持久对象a本身(可以对其取地址),故其是左值。

  右值引用单独使用的情况很少,一般都是用于作为方法的参数或者函数的参数,使用的最多的情况则是用在移动语义之上。