構(gòu)造函數(shù)的八種方法 C 構(gòu)造函數(shù)什么時候會被調(diào)用?
C 構(gòu)造函數(shù)什么時候會被調(diào)用?1. 對象在創(chuàng)建時用其他對象初始化person P(q)//此時,復(fù)制構(gòu)造函數(shù)用于創(chuàng)建實例Pperson P=q//此時,復(fù)制構(gòu)造函數(shù)用于在定義實例P時初始化它2。當對
C 構(gòu)造函數(shù)什么時候會被調(diào)用?
1. 對象在創(chuàng)建時用其他對象初始化
person P(q)//此時,復(fù)制構(gòu)造函數(shù)用于創(chuàng)建實例P
person P=q//此時,復(fù)制構(gòu)造函數(shù)用于在定義實例P時初始化它
2。當對象作為函數(shù)參數(shù)傳遞值時
f(P)//此時,P作為函數(shù)參數(shù)傳遞。當p放在堆棧上時,會調(diào)用copy構(gòu)造函數(shù)來創(chuàng)建一個局部對象,該對象的作用域與函數(shù)中的局部變量相同
需要注意的是賦值不會調(diào)用copy構(gòu)造函數(shù),但是賦值運算符(重載)有效
P=q//此時沒有對復(fù)制構(gòu)造函數(shù)的調(diào)用
!請記住,如果聲明了一個對象并為其分配了另一個現(xiàn)有對象,則將調(diào)用復(fù)制構(gòu)造函數(shù);如果已存在一個對象,然后為其分配了另一個現(xiàn)有對象,則將調(diào)用賦值運算符(重載)。默認的復(fù)制構(gòu)造函數(shù)和賦值運算符都是“淺”復(fù)制“,只是復(fù)制字段,所以如果對象包含動態(tài)分配的內(nèi)存,我們需要重寫復(fù)制構(gòu)造函數(shù)或重載賦值運算符來實現(xiàn)“深復(fù)制”,以確保數(shù)據(jù)的完整性和安全性。
構(gòu)造函數(shù)什么時候被調(diào)用,復(fù)制構(gòu)造函數(shù)是么時候被調(diào)用?
方法仍有問題。構(gòu)造函數(shù)包括復(fù)制構(gòu)造函數(shù)。在創(chuàng)建對象時調(diào)用構(gòu)造函數(shù)。關(guān)鍵詞:創(chuàng)建時,a是形式。指針類型僅在新建時調(diào)用復(fù)制構(gòu)造函數(shù)。它也是構(gòu)造器。當用一個對象作為參數(shù)創(chuàng)建另一個對象或賦值(同樣關(guān)注于創(chuàng)建)時,如a(b)a=b,以下不是對復(fù)制構(gòu)造函數(shù)a,b的調(diào)用。默認(無參數(shù))構(gòu)造稱為a=b賦值