新的概念:拷貝建構函式
導引:含有 「建構函式」,因而就具備了「建構函式」的所有特徵。此外,還新增加了新的特徵。(當然,不變的是其作用依然是 「初始化」。)
作用:用乙個已經存在的物件初始化乙個正在建立的新物件。
特徵:拷貝建構函式名與類名相同,形參只有乙個——物件的引用
沒有任何函式返回型別
因為只有乙個形參且無返回型別,因而不能過載拷貝建構函式
形式:《類名》(《類名》 &物件名)
沒用明顯定義時,系統自動給出缺省拷貝建構函式——「淺拷貝」
某些情況下,使用者必須明確定義拷貝建構函式——「深拷貝」
何時需要呼叫拷貝建構函式:
用乙個已存在的物件初始化乙個新物件時
形式:《類名》《新物件名》(《已存在物件名》)
《類名》《新物件名》=《已存在物件名》
物件作為實參,當函式呼叫開始進行實參和形參結合時
當函式的返回值是類的物件,函式呼叫完成返回時
注意:呼叫了「拷貝建構函式」,就不會再去執行其他建構函式
(拷貝建構函式就是一種特殊的建構函式)
示例要求:
用乙個已知的 intarray 類物件初始化乙個新的 intarray 類物件
直接用系統提過的預設拷貝建構函式
拷貝建構函式重點整理
參考鏈結下文章,總結的 示例 classname const classname c 就是我們自定義的拷貝建構函式。拷貝建構函式是一種特殊的建構函式,函式的名稱必須與類名一致,它必須的乙個引數是本型別的乙個引用變數。當類物件以值傳遞方式傳入引數時 物件以值傳遞方式傳入形參時,會先生成乙個臨時變數te...
拷貝建構函式,預設拷貝建構函式
拷貝建構函式,預設拷貝建構函式 1.c 的預設拷貝建構函式,從深度拷貝和淺拷貝說起 c 類的預設拷貝建構函式的弊端 c 類的中有兩個特殊的建構函式,1 無參建構函式,2 拷貝建構函式。它們的特殊之處在於 1 當類中沒有定義任何建構函式時,編譯器會預設提供乙個無參建構函式且其函式體為空 2 當類中沒有...
建構函式 拷貝建構函式
建構函式可以分為三類 1 不帶引數的建構函式 在函式體中對資料成員賦初值,這種方式使該類的每乙個物件都得到同一組初值 2 帶引數的建構函式 如果使用者希望對不同的物件賦不同的初值,可以採用帶引數的建構函式。在呼叫不同物件的建構函式時從外面將不同的資料傳遞給建構函式,以實現初始化 3 複製建構函式 建...