第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

關(guān)于視頻中的幾個疑問

關(guān)于視頻中的疑問 1.Array Array::printInfo() ? //返回值為對象 ?return *this ? ? ? //this為指針,*this為對象 (1.)為什么主函數(shù)中還能訪問printInfo()函數(shù)?// ? arr1.printInfo(); (2.)arr1.printInfo().setlen(5)是否是調(diào)用同一對象的兩個成員函數(shù)? ? //應(yīng)該怎樣理解? 2.Array& Array::printInfo() ? //取得是對象Array對象中的函數(shù)printInfo()的地址嗎?應(yīng)該怎樣理解?

正在回答

3 回答

1、Array arr1 當(dāng)實(shí)例化一個arr1的時候,因?yàn)橛蠥rray Array::printInfo()存在,系統(tǒng)會創(chuàng)建一個Array類的隱形變量,我們姑且用arr2來表示隱形變量,這時arr1和arr2指向的是不同的地址,有點(diǎn)類似于windows的復(fù)制操作。 系統(tǒng)執(zhí)行arr1.printInfo( return * this)的時候,其實(shí)相當(dāng)于arr1.printInfo( &arr2=*this; return arr2; ),所以arr1.printInfo().setlen(5)就是arr2.setlen(5).因?yàn)閍rr1和arr2指向兩個不同的地址,所以是兩個對象,所以?arr1.printInfo().setlen(5)是arr2的成員函數(shù)。

2、Array arr1 當(dāng)實(shí)例化一個arr1的時候,因?yàn)橛蠥rray& Array::printInfo()存在 ,系統(tǒng)這時候還會創(chuàng)建一個arr2出來,但是因?yàn)橛?amp;也就是引用,所以arr2和arr1指向的是同一個地址,這就有點(diǎn)類似于windows的快捷方式。系統(tǒng)執(zhí)行arr1.printInfo( return * this)的時候其實(shí)返回的還是arr2,只是arr2和arr1指向同樣的地址,所以arr1.printInfo().setlen(5)相當(dāng)于arr2.setlen(5)也相當(dāng)于arr1.setlen(5)。

給個好評吧!賺3分好不容易!

5 回復(fù) 有任何疑惑可以回復(fù)我~
#1

全棧港 提問者

非常感謝!
2016-01-08 回復(fù) 有任何疑惑可以回復(fù)我~

首先實(shí)例化了arr1這個對象,當(dāng)然能訪問;返回的是*this這個對象,由內(nèi)存地址一樣可以知道這是同一個對象,所以是調(diào)用同一個對象的兩個成員函數(shù);這個是引用,你看看前面關(guān)于引用的講解(個人拙見,如有誤請大家指正,相互學(xué)習(xí))

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

全棧港 提問者

非常感謝!
2016-01-08 回復(fù) 有任何疑惑可以回復(fù)我~
  1. 因?yàn)閜rintInfo函數(shù)是public的,所以可以在類外被訪問。

  2. 在聲明時,類型名后面的&代表其是引用類型。 那么?Array& Array::printInfo() 函數(shù)返回類型是“Array引用”。

    而實(shí)際代碼中 return *this; 語句返回的就是將這個類實(shí)例自身。

    所以?arr1.printInfo().setlen 這句代碼,在printInfo函數(shù)調(diào)用后,這里返回的還是arr1自己,所以后面setlen函數(shù)就是調(diào)用arr1自己的那個。

    也正是因?yàn)樾枰B續(xù)調(diào)用setlen來對自己進(jìn)行設(shè)置,所以printInfo函數(shù)才必須要返回引用類型。如果printInfo的返回類型是普通Array,那么在調(diào)用printInfo過后得到的是個臨時構(gòu)造的Array對象,再調(diào)用setlen修改的是這個臨時對象中的值,不會改變arr1本身。

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

全棧港 提問者

非常感謝!
2016-01-08 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
C++遠(yuǎn)征之封裝篇(下)
  • 參與學(xué)習(xí)       70903    人
  • 解答問題       533    個

封裝--面向?qū)ο笕筇卣髦?,通過案例讓C++所學(xué)知識融會貫通

進(jìn)入課程

關(guān)于視頻中的幾個疑問

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號