您現(xiàn)在的位置是:首頁 >要聞 > 2024-01-27 00:18:32 來源:
拷貝構造函數(shù)和復制構造函數(shù)的區(qū)別(拷貝構造函數(shù))
大家好,我是小夏,我來為大家解答以上問題??截悩嬙旌瘮?shù)和復制構造函數(shù)的區(qū)別,拷貝構造函數(shù)很多人還不知道,現(xiàn)在讓我們一起來看看吧!
1、拷貝構造函數(shù),又稱復制構造函數(shù),由編譯器調(diào)用來完成一些基于同一類的其他對象的構建及初始化。在一個對象以值傳遞的方式傳入函數(shù)體時;一個對象以值傳遞的方式從函數(shù)返回時;一個對象用于給另外一個對象進行初始化(常稱為賦值初始化)時被自動調(diào)用。
2、拷貝構造函數(shù)必須以引用的形式傳遞(參數(shù)為引用值)。當一個對象以傳遞值的方式傳一個函數(shù)的時候,拷貝構造函數(shù)自動的被調(diào)用來生成函數(shù)中的對象。
3、如果一個對象是被傳入自己的拷貝構造函數(shù),它的拷貝構造函數(shù)將會被調(diào)用來拷貝這個對象這樣復制才可以傳入它自己的拷貝構造函數(shù),這會導致無限循環(huán)直至棧溢出(Stack Overflow)。除了當對象傳入函數(shù)的時候被隱式調(diào)用以外,拷貝構造函數(shù)在對象被函數(shù)返回的時候也同樣的被調(diào)用。
4、擴展資料:
5、使用原則:
6、通常的原則是:對于凡是包含動態(tài)分配成員或包含指針成員的類都應該提供拷貝構造函數(shù);在提供拷貝構造函數(shù)的同時,還應該考慮重載"="賦值操作符號。
7、拷貝構造函數(shù)的格式為:
8、類名(const 類名& 對象名); 拷貝構造函數(shù)的原型,參數(shù)是常量對象的引用。由于拷貝構造函數(shù)的目的是成員復制,不應修改原對象,所以建議使用const關鍵字。
9、參考資料來源:搜狗百科-拷貝構造函數(shù)
本文到此講解完畢了,希望對大家有幫助。