何時會呼叫拷貝建構函式

2021-10-23 20:01:07 字數 366 閱讀 7587

拷貝建構函式什麼時候用到

當用乙個已初始化過了的自定義類型別物件去初始化另乙個新構造的物件的時候,拷貝建構函式就會被自動呼叫。也就是說,當類的物件需要拷貝時,拷貝建構函式將會被呼叫。以下情況都會呼叫拷貝建構函式:

① 程式中需要新建立乙個物件,並用另乙個同類的物件對它初始化,如前面介紹的那樣。

② 當函式的引數為類的物件時。在呼叫函式時需要將實參物件完整地傳遞給形參,也就是需要建立乙個實參的拷貝,這就是按實參複製乙個形參,系統是通過呼叫複製建構函式來實現的,這樣能保證形參具有和實參完全相同的值。

③ 函式的返回值是類的物件。在函式呼叫完畢將返回值帶回函式呼叫處時。此時需要將函式中的物件複製乙個臨時物件並傳給該函式的呼叫處

何時呼叫拷貝建構函式

拷貝建構函式是一種特殊的建構函式 拷貝建構函式是由編譯器呼叫,用來完成一系列基於同一類的其他物件的構件及初始化。拷貝建構函式的一般形式 類名 類名 變數名 函式體 拷貝建構函式的名稱必須和類名一致,形參必須是唯一的 不可改變的本型別的乙個引用型別的變數。拷貝構造函式呼叫的三種情況 物件以值傳遞的方式...

到底什麼時候會呼叫拷貝建構函式?

當以拷貝的方式初始化物件時會呼叫拷貝建構函式。這裡有兩個關鍵點,分別是 以拷貝的方式 和 初始化物件 初始化物件 初始化物件是指,為物件分配記憶體後第一次向記憶體中填充資料,這個過程會呼叫建構函式。物件被建立後必須立即被初始化,換句話說,只要建立物件,就會呼叫建構函式。初始化和賦值的區別 初始化和賦...

子類拷貝構造是否會呼叫父類的拷貝構造?

有時候我們習慣性的認為在子類拷貝構造的時候會自動的呼叫父類的拷貝構造,這種觀點來自於子類構造時會自動呼叫父類的建構函式 父類先於子類構造 子類析構的時候會自動呼叫父類的析構函式 父類後於子類析構 但實則上子類拷貝建構函式不會自動呼叫父類的拷貝建構函式 從而導致基類資料缺失的問題 如下 class b...