右值,右值引用和移动操作

  右值,不能够用取地址&来获得对象内存地址的值。

  右值引用,使用type&& 来取得对右值对象的引用,可以通过右值引用来对右值对象

进行相应的修改,定义了右值引用过后,对象会被存储到固定的内存位置当中,对右值

引用进行取地址的操作可以获得右值的存储地址。

  左值一般是持久的状态,右值要么是字面值常量,要么是表达式计算过程当中创建

的临时对象,右值引用只能绑定到临时对象,该对象的特性是1将要被销毁 2 该对象没有

其他的用户。

  std::move()的调用,其告诉编译器,我们目前有一个左值,但是希望像右值一样处

理该左值,调用了move之后的就只能对源对象进行赋值或者是销毁操作,不能进行相关

的调用操作了。move的功能就是将原本的左值调用完该函数之后就变成右值了,可以绑

定到右值引用上,同时也可以作为移动构造或者是移动赋值函数的参数。

  移动构造函数和移动赋值运算符,在进行相应的移动操作之后,并不会销毁原对象,

但是要确保原对象在被移动后处于析构安全的状态。

posted @ 2020-08-03 21:17  一只小菜鸡a  阅读(247)  评论(0)    收藏  举报