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