1、對象在創建時使用其他的對象初始化 Person p(q); //此時複製構造函數被用來創建實例p Person p = q; //此時複製構造函數被用來在定義實例p時初始化p 2、對象作爲函數的參數進行值傳遞時 f(p); //此時p作爲函數的參數進行值傳遞,p入棧時會調用複製構造函數創建一個局部對象,與函數內的局部變量具有相同的作用域 需要注意的是,賦值並不會調用複製構造函數,賦值只是賦值運算符(重載)在起作用 p = q; //此時沒有複製構造函數的調用! 簡單來記的話就是,如果對象在聲明的同時將另一個已存在的對象賦給它,就會調用複製構造函數;如果對象已經存在,然後將另一個已存在的對象賦給它,調用的就是賦值運算符(重載) 默認的複製構造函數和賦值運算符進行的都是"shallow copy",只是簡單地複製字段,因此如果對象中含有動態分配的內存,就需要我們自己重寫複製構造函數或者重載賦值運算符來實現"deep copy",確保數據的完整性和安全性。
C++:拷貝構造函數在什麼時候被調用?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
今天!通義靈碼在北京、成都、杭州三城開講啦
原創
2024-05-27 21:13:46
OSS_PIPE:Rust編寫的大規模文件遷移工具
京東雲開發者
2024-05-15 23:59:27
OSS_PIPE:Rust編寫的大規模文件遷移工具| 京東雲技術團隊
原創
2024-05-13 23:59:27
通義靈碼企業版正式發佈,滿足企業私域知識檢索、數據合規、統一管理等需求
原創
2024-05-11 21:15:01
華爲雲開發者桌面全新發布CodeArts IDE for Python,極致優雅雲原生開發體驗
原創
2024-05-08 10:34:25
我們團隊來了一位新同事,主動要求幫忙敲代碼!歡迎 AI 001號
原創
2024-05-07 21:12:06
西安站開營!AI 編碼助手通義靈碼幫大學生“整活兒”
原創
2024-04-24 21:12:06
數組和鏈表的適用場景
原創
2024-04-24 09:31:34
Xmake v2.9.1 發佈,新增 native lua 模塊和鴻蒙系統支持
原創
2024-04-23 12:10:57
下載量超 200 萬,最近頻繁登上熱搜的 AI 程序員,大家怎麼看
原創
2024-04-22 21:12:06
通義靈碼走進武漢大學:讓 AI 編碼助手激活大學生的創造力
原創
2024-04-02 21:12:12
讓 AI 幫你寫代碼,開發提效神器來了
原創
2024-03-27 21:14:11
在數組中保存/獲取 指針
freeonsky
2020-07-08 00:57:13