課程
/后端開發
/C++
/C++遠征之封裝篇(下)
為什么return *this指向了一個臨時對象而return this能指向原先的arr1?
2015-08-13
源自:C++遠征之封裝篇(下) 4-8
正在回答
接上補充,如果用函數定義的時候返回類型是 Array&,那返回的也是原來的 arr1。
和返回類型有關, return *this,返回類型是Array,是值傳遞,返回后會先copy出一個臨時對象,而return this是返回Array*類型,返回值本質上也是值傳遞,生成一個臨時指針對象,但是這個對象內容是指向Array的地址。
舉報
封裝--面向對象三大特征之一,通過案例讓C++所學知識融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-12-21
接上補充,如果用函數定義的時候返回類型是 Array&,那返回的也是原來的 arr1。
2015-08-13
和返回類型有關, return *this,返回類型是Array,是值傳遞,返回后會先copy出一個臨時對象,而return this是返回Array*類型,返回值本質上也是值傳遞,生成一個臨時指針對象,但是這個對象內容是指向Array的地址。