C++:10---再议拷贝构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++:10---再议拷贝构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、概念
使用一個已經存在的對象,去構造(初始化)另一個對象
二、格式
參數加上const&,因為拷貝構造函數在幾種情況下都會被隱式地使用,因此拷貝構造函數不應該是explict的
const:防止函數內部修改值
&:防止無限循環拷貝
三、拷貝構造函數的分類
淺拷貝:成員變量無動態內存(指針等)變量時,在拷貝構造函數內對成員變量只做簡單的賦值,不做內存申請
深拷貝:成員變量有動態內存(指針等)變量時,在拷貝構造函數內對成員變量先進行內存申請,然后進行內容拷貝
默認拷貝構造:沒有寫拷貝構造時,系統默認給出(默認的為淺拷貝)
淺拷貝:
//此類情況使用淺拷貝 class Cperson { private: int a; public: Cperson(Cperson const& other);//拷貝構造 } Cperson::Cperson(Cperson const& other) { this->a=other.a; }深拷貝:
總結
以上是生活随笔為你收集整理的C++:10---再议拷贝构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis:15---键迁移(move、
- 下一篇: Linux下的lua和boost c++