For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專(zhuān)心促就業(yè)
當(dāng)你看到賦值符號(hào)時(shí)要小心,因?yàn)?="語(yǔ)法也可用來(lái)調(diào)用copy構(gòu)造函數(shù)。
例如: Widget w3 = w2; //調(diào)用copy構(gòu)造函數(shù)!!
copy構(gòu)造函數(shù)是一個(gè)尤其重要的函數(shù),因?yàn)樗x一個(gè)對(duì)象如何passed by value(以值傳遞)。
舉個(gè)例子,考慮一下代碼:
bool hasAcceptableQuality(Widget w);
…
Widget aWidget;
if ( hasAcceptableQuality(aWidget) )
…
分解hasAcceptableQuality(aWidget)這個(gè)語(yǔ)句如下:
Widget w = aWidget;
hasAcceptableQuality(w)
參數(shù)w是以by value 方式傳遞給hasAcceptableQuality.在上述調(diào)用中Widget被復(fù)制到w體內(nèi),這個(gè)復(fù)制動(dòng)作由Widget的copy構(gòu)造函數(shù)完成。
總結(jié):函數(shù)中的Pass-by-value意味"調(diào)用copy構(gòu)造函數(shù)".
以by value 傳遞用戶自定義類(lèi)型通常是個(gè)壞主意,Pass-by-reference-to-const(引用傳遞)往往是比較好的選擇。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!