C++淺拷貝和深拷貝
用一句簡單的話來說就是淺拷貝,只是對指標的拷貝,拷貝後兩個指標指向同一個記憶體空間,深拷貝不但對指標進行拷貝,而且對指標指向的內容進行拷貝(重新分配有記憶體),經深拷貝後的指標是指向兩個不同地址的指標。因此淺拷貝釋放記憶體的時候很容易出現因為釋放兩個指標而記憶體出錯。
拷貝情況:
當物件中存在指標成員時,除了在複製物件時需要考慮自定義拷貝建構函式,還應該考慮以下兩種情形:
1.當函式的引數為物件時,實參傳遞給形參的實際上是實參的一個拷貝物件,系統自動通過拷貝建構函式實現;
2.當函式的返回值為一個物件時,該物件實際上是函式內物件的一個拷貝,用於返回函式呼叫處。
相關文章
- 【c++】淺拷貝與深拷貝C++
- iOS深拷貝和淺拷貝iOS
- Java深拷貝和淺拷貝Java
- 物件深拷貝和淺拷貝物件
- JavaScript深拷貝和淺拷貝JavaScript
- js 淺拷貝和深拷貝JS
- js 深拷貝和淺拷貝JS
- JavaScript淺拷貝和深拷貝JavaScript
- js深拷貝和淺拷貝JS
- C++拷貝建構函式(深拷貝,淺拷貝)C++函式
- 淺探js深拷貝和淺拷貝JS
- go slice深拷貝和淺拷貝Go
- JavaScript之深拷貝和淺拷貝JavaScript
- js的深拷貝和淺拷貝JS
- 聊聊物件深拷貝和淺拷貝物件
- ECMAScript-淺拷貝和深拷貝
- js之淺拷貝和深拷貝JS
- 深度解析深拷貝和淺拷貝
- Objective C淺拷貝和深拷貝Object
- java深克隆(深拷貝)和淺克隆(淺拷貝)Java
- vue深拷貝淺拷貝Vue
- python 指標拷貝,淺拷貝和深拷貝Python指標
- 淺談深拷貝與淺拷貝?深拷貝幾種方法。
- VUE 中 的深拷貝和淺拷貝Vue
- 對淺拷貝和深拷貝的理解
- js實現深拷貝和淺拷貝JS
- JS深拷貝與淺拷貝JS
- javascript 淺拷貝VS深拷貝JavaScript
- js 深拷貝 vs 淺拷貝JS
- 淺談Java中的淺拷貝和深拷貝Java
- 深入淺出深拷貝與淺拷貝
- [JS系列二]談談深拷貝和淺拷貝,如何實現深拷貝JS
- javaScript深拷貝和淺拷貝簡單梳理JavaScript
- Javascript知識點:淺拷貝和深拷貝JavaScript
- js 陣列的淺拷貝和深拷貝JS陣列
- PHP中的淺拷貝和深拷貝薦PHP
- 深拷貝、淺拷貝與Cloneable介面
- 賦值、淺拷貝與深拷貝賦值