溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php中拷貝構(gòu)造函數(shù)、賦值運算符重載的示例

發(fā)布時間:2021-02-23 11:10:49 來源:億速云 閱讀:198 作者:清風(fēng) 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了php中拷貝構(gòu)造函數(shù)、賦值運算符重載的示例,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學(xué)習(xí)一下“php中拷貝構(gòu)造函數(shù)、賦值運算符重載的示例”這篇文章吧。

php有什么用

php是一個嵌套的縮寫名稱,指的是英文超級文本預(yù)處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因為php是開源的,從而使得php經(jīng)久不衰。

對象的賦值與復(fù)制: 賦值:通過“ = ”運算符重載
User a(10),b;
b = a;
復(fù)制:調(diào)用復(fù)制構(gòu)造函數(shù)
User b;
User a(b);
或者
User a = b;//相當(dāng)于User a(b);
與賦值的區(qū)別,賦值是對一個已經(jīng)存在的對象進(jìn)行賦值(已經(jīng)實現(xiàn)定義了被賦值的對象),而復(fù)制是從無到有建立一個新的對象,并使它與已有的對象相同。
淺復(fù)制與深復(fù)制: 若對象中有指針成員,在復(fù)制時,只會將該指針成員的地址復(fù)制給新建立的對象,因此,兩個對象中的指針成員都指向了同一塊內(nèi)存區(qū)域,在釋放時會出現(xiàn)重復(fù)釋放的問題。 需要手動定義復(fù)制構(gòu)造函數(shù),在構(gòu)造函數(shù)中將為指針變量分配新的內(nèi)存,是不同對象的指針成員指向不同的內(nèi)存區(qū)域。
用到拷貝構(gòu)造函數(shù)的三種情況: 1、需要建立一個新對象,并用另一個同類對象對其進(jìn)行初始化 2、函數(shù)的參數(shù)為類的對象時,在調(diào)用函數(shù)時需要建立一個實參的拷貝,按實參復(fù)制一個形參,系統(tǒng)是通過調(diào)用拷貝構(gòu)造函數(shù)實現(xiàn)的 3、函數(shù)的返回值是類的對象:函數(shù)調(diào)用結(jié)束時,需要將函數(shù)中的對象復(fù)制一個臨時對象,并傳給該函數(shù)的調(diào)用處。

User getUser()
{  
User temp;  
return temp;
}
int main()
{  
User user = getUser();//調(diào)用getUser();
}

getUser()函數(shù)調(diào)用結(jié)束時,getUser中建立的對象temp的生命周期結(jié)束(即將銷毀),所以不是將temp帶回main,而是在執(zhí)行return語句時,調(diào)用User類的拷貝構(gòu)造函數(shù),按temp拷貝一個新的、對象,然后將它賦值給user.

以上就是關(guān)于“php中拷貝構(gòu)造函數(shù)、賦值運算符重載的示例”的內(nèi)容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學(xué)習(xí)新知識,若想了解更多相關(guān)知識內(nèi)容,請多多關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI