課程咨詢: 400-996-5531 / 投訴建議: 400-111-8989
認真做教育 專心促就業
當你看到賦值符號時要小心,因為"="語法也可用來調用copy構造函數。
例如: Widget w3 = w2; //調用copy構造函數!!
copy構造函數是一個尤其重要的函數,因為它定義一個對象如何passed by value(以值傳遞)。
舉個例子,考慮一下代碼:
bool hasAcceptableQuality(Widget w);
…
Widget aWidget;
if ( hasAcceptableQuality(aWidget) )
…
分解hasAcceptableQuality(aWidget)這個語句如下:
Widget w = aWidget;
hasAcceptableQuality(w)
參數w是以by value 方式傳遞給hasAcceptableQuality.在上述調用中Widget被復制到w體內,這個復制動作由Widget的copy構造函數完成。
總結:函數中的Pass-by-value意味"調用copy構造函數".
以by value 傳遞用戶自定義類型通常是個壞主意,Pass-by-reference-to-const(引用傳遞)往往是比較好的選擇。
【免責聲明】本文部分系轉載,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請在30日內與聯系我們,我們會予以更改或刪除相關文章,以保證您的權益!