請看下面的圖片:
這段代碼的主要目的是把一個c字符串賦給一個string螃征。最后一條語句顯然是一個兼容類型賦給一個類類型,這必然會用到單參數(shù)構(gòu)造函數(shù)透敌,因為這其實是一個類型轉(zhuǎn)換的過程盯滚,那么它要經(jīng)過以下步驟。
1酗电、調(diào)用單參數(shù)構(gòu)造函數(shù)把C風(fēng)格字符串轉(zhuǎn)換為string類型魄藕。其實質(zhì)是把一個C風(fēng)格字符串轉(zhuǎn)換成一個臨時性的string對象;
2撵术、把這個臨時性的string對象通過賦值操作符賦給目標(biāo)string對象也就是name背率;
3、析構(gòu)這個臨時string對象嫩与。
毫無疑問這個過程比較麻煩寝姿,解決的方法之一是自定義賦值操作符,如下圖所示:
而這個解法就是所謂的深度賦值操作符划滋。