C++: 06---构造函数析构函数
生活随笔
收集整理的這篇文章主要介紹了
C++: 06---构造函数析构函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
拷貝構造函數:
用一個已經存在的對象來生成一個相同類型的新對象。(淺拷貝)
默認的拷貝構造函數:
如果自定義了拷貝構造函數,編譯器就不在生成默認的拷貝構造函數。
如果沒有自定義拷貝構造函數,但在代碼中用到了拷貝構造函數,編譯器會生成默認的拷貝構造函數。
深拷貝&淺拷貝:
系統默認的拷貝構造函數是淺拷貝,類中含有指針類型的變量,須自定義拷貝構造函數用深拷貝來實現。
淺拷貝只是對指針的拷貝,拷貝后兩個指針指向同一個內存空間,所指向的空間內容并沒有復制,而是由兩個對象共用。深拷貝不但對指針進行拷貝,而且對指針指向的內容進行拷貝,經深拷貝后的指針是指向兩個不同地址的指針。
如圖:
思考:
當對象中存在指針成員時,為什么需要自己實現拷貝構造函數?如果不,會出現怎樣的問題?
看代碼:
#include<iostream> class CGoods { p總結
以上是生活随笔為你收集整理的C++: 06---构造函数析构函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git(12)-stash, reflo
- 下一篇: Redis:15---键迁移(move、