C++:31---对象引用和赋值
生活随笔
收集整理的這篇文章主要介紹了
C++:31---对象引用和赋值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、對象移動概述
C++11標準引入了“對象移動”的概念
對象移動的特性是:可以移動而非拷貝對象
在C++舊標準中,沒有直接的方法移動對象。因此會有很多不必要的資源拷貝
標準庫容器、string、share_ptr類既支持移動也支持拷貝。IO類和unique_ptr類可以移動但不能拷貝
對象移動的特點
在很多情況下會發生對象拷貝的現象,對象拷貝之后就被銷毀了,在這種情況下,對象移動而非對象拷貝會大幅度提升性能
使用移動而非拷貝的另一個原因是:類似于IO類或unique_ptr這樣的類,這些類都不能被共享資源(如指針或IO緩沖)。因此,這些類型的對象不能拷貝但可以移動
二、右值引用(&&)
為了支持移動操作,C++11標準引入了新的引用類型——右值引用
所謂右值引用就是必須綁定到右值的引用。我們通過&&而不是&來獲得右值引用
右值有一個很重要的性質:只能綁定到一個將要銷毀的對象
左值引用(&)
“引用(reference)”類型介紹參閱:
為了與“右值引用”區別開來,我們本篇文章中將“”引用(reference?
總結
以上是生活随笔為你收集整理的C++:31---对象引用和赋值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AWK再次认识--内置的参数,以及编写脚
- 下一篇: C++:38---final关键字和禁止