用一個(gè)已有的對(duì)象來初始化一個(gè)被創(chuàng)建的同類的對(duì)象,是一種特殊的構(gòu)造函數(shù),具有一般構(gòu)造函數(shù)的所有特性,其形參是本類對(duì)象的引用 。
用戶可以根據(jù)自己實(shí)際問題的需要定義特定的拷貝構(gòu)造函數(shù),以實(shí)現(xiàn)同類對(duì)象之間數(shù)據(jù)成員的傳遞 。如果用戶沒有聲明類的拷貝構(gòu)造函數(shù),系統(tǒng)就會(huì)自動(dòng)生成一個(gè)缺省拷貝構(gòu)造函數(shù),這個(gè)缺省拷貝構(gòu)造函數(shù)的功能是把初始對(duì)象的每個(gè)數(shù)據(jù)成員的值都復(fù)制到新建立的對(duì)象中 。

擴(kuò)展資料
拷貝構(gòu)造函數(shù)使用原則:對(duì)于凡是包含動(dòng)態(tài)分配成員或包含指針成員的類都應(yīng)該提供拷貝構(gòu)造函數(shù);在提供拷貝構(gòu)造函數(shù)的同時(shí),還應(yīng)該考慮重載“=”賦值操作符號(hào) 。
傳遞形式:拷貝構(gòu)造函數(shù)必須以引用的形式傳遞(參數(shù)為引用值) 。其原因如下:當(dāng)一個(gè)對(duì)象以傳遞值的方式傳一個(gè)函數(shù)的時(shí)候,拷貝構(gòu)造函數(shù)自動(dòng)的被調(diào)用來生成函數(shù)中的對(duì)象 。
如果一個(gè)對(duì)象是被傳入自己的拷貝構(gòu)造函數(shù),它的拷貝構(gòu)造函數(shù)將會(huì)被調(diào)用來拷貝這個(gè)對(duì)象這樣復(fù)制才可以傳入它自己的拷貝構(gòu)造函數(shù),這會(huì)導(dǎo)致無限循環(huán)直至棧溢出(Stack Overflow) 。除了當(dāng)對(duì)象傳入函數(shù)的時(shí)候被隱式調(diào)用以外,拷貝構(gòu)造函數(shù)在對(duì)象被函數(shù)返回的時(shí)候也同樣的被調(diào)用 。
參考資料來源:百度百科-拷貝構(gòu)造函數(shù)
參考資料來源:百度百科-深拷貝
【拷貝構(gòu)造函數(shù)的作用】
猜你喜歡
- 三角函數(shù)n次方積分公式
- 初三數(shù)學(xué)二次函數(shù)。
- CAD圖拷貝到另一個(gè)CAD內(nèi),尺寸標(biāo)注變大了一倍?
- 初始化磁盤提示函數(shù)不正確
- 3角函數(shù)的定義
- 汽車發(fā)動(dòng)機(jī)構(gòu)造與維修
- 函數(shù)中In代表什么 函數(shù)中In代表什么意思
- 三角函數(shù)公式大全與關(guān)系?
- EXCEL中IF函數(shù)如何選擇多個(gè)條件
- 雙曲線離心率公式三角函數(shù)表示
