拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù)滋将,
唯一的參數(shù)是本類型的一個(gè)引用變量症昏。
構(gòu)造函數(shù)名(const? 構(gòu)造函數(shù)名 &? c)
{
? ? ? age? = c. age;
}
當(dāng)用一個(gè)已經(jīng)初始化過(guò)了的自定義類型對(duì)象去初始化另外一個(gè)新構(gòu)造的對(duì)象的
時(shí)候,拷貝構(gòu)造函數(shù)就會(huì)被自動(dòng)調(diào)用掘宪。
1.一個(gè)對(duì)象以值傳遞的方式傳入函數(shù)體
2.一個(gè)對(duì)象需要通過(guò)另外一個(gè)對(duì)象進(jìn)行初始化
3.一個(gè)對(duì)象以值傳遞的方式從函數(shù)返回
如果在類中沒(méi)有顯示的聲明一個(gè)拷貝構(gòu)造函數(shù)攘烛,那么編譯器會(huì)自動(dòng)生成
一個(gè)默認(rèn)的拷貝構(gòu)造函數(shù),即位拷貝医寿,也叫淺拷貝。
自定義拷貝構(gòu)造函數(shù)是一種良好的編程風(fēng)格靖秩,可以阻止編譯器形成默認(rèn)
的拷貝構(gòu)造函數(shù)。
=====深拷貝與淺拷貝=====
如果類內(nèi)成員變量需要?jiǎng)討B(tài)開(kāi)辟堆內(nèi)存花颗,此時(shí)如果實(shí)行淺拷貝惠拭,就是把
對(duì)象里的值完全復(fù)制給另一個(gè)對(duì)象扩劝,那么新對(duì)象的堆內(nèi)存變量也同時(shí)
指向舊對(duì)象的堆成員變量职辅,即兩個(gè)指針指向同一塊內(nèi)存區(qū)域。當(dāng)釋放其中一個(gè)
指針的內(nèi)存時(shí)候簇秒,另一個(gè)指針就成為了野指針。