- 兩個特殊的構造函數
- 無參構造函數
- 沒有參數的構造函數
- 當類中沒有定義構造函數時,編譯器默認提供一個無參構造函數,並且其函數體爲空
- 拷貝構造函數
- 參數爲const class_name&的構造函數
- 當類中沒有定義拷貝構造函數時,編譯器默認提供一個拷貝構造函數,簡單的進行成員變量的值複製。
- 無參構造函數
- 拷貝構造函數的意義
- 兼容C語言的初始化方式
- 初始化行爲能夠符合預期的邏輯
- 淺拷貝
- 拷貝後對象的物理狀態相同
- 深拷貝
- 考背後對象是我邏輯狀態相同
編譯器提供的拷貝構造函數只進行淺拷貝
什麼時候需要進行深拷貝
- 對象中有成員指代了系統中的資源
- 成員指向了動態內存空間
- 成員打開外存中的文件
- 成員使用了系統中的網絡端口
- …
- 對象中有成員指代了系統中的資源
- 一般原則
- 自定義拷貝構造函數,必然需要實現深拷貝
對象的構造3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
sizeof和strlen的在char*和char[]的區別
北梦~
2020-07-05 07:16:21
c++ 讀取和寫入文件
北梦~
2020-07-05 07:16:21
Debug Assertion Failed! Expression: _pFirstBlock == pHead解決方案
wql2rainbow
2020-07-02 15:37:55
lesson01 計算機科學
程序是什麼? ………組成? 機器語言? 內存地址? 複製程序的解釋和運行的計算機部件? cpu 寄存器 存儲 控制 指揮家 運算器 計算 時鐘 GHZ 只可控制寄存器
qq_28203631
2020-07-01 07:12:58
c++重學筆記18 - 靜態斷言檢查器
qq_41157212
2020-07-01 05:53:18
c++重學筆記19 - int2type
qq_41157212
2020-07-01 05:53:07
Boost學習筆記1-Boost入門
qq_41157212
2020-07-01 05:53:07
Boost-源碼分析筆記1-remove-cv
qq_41157212
2020-07-01 05:53:07
c++重學筆記21 - 類型選擇器
qq_41157212
2020-07-01 05:53:07
Boost-源碼分析筆記3-integral-constant
qq_41157212
2020-07-01 05:53:07
Boost-源碼分析筆記2-is-array
qq_41157212
2020-07-01 05:53:06
Boost學習筆記2-Boost-Any
qq_41157212
2020-07-01 05:53:06
Boost-源碼分析筆記8-any
qq_41157212
2020-07-01 05:53:06
Boost-源碼分析筆記5-remove-bounds
qq_41157212
2020-07-01 05:53:06