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