c++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定

c++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定

ID:15836174

大?。?2.00 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2018-08-06

c++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定_第1頁(yè)
c++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定_第2頁(yè)
c++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定_第3頁(yè)
資源描述:

《c++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、C++學(xué)習(xí)筆記(15)——靜態(tài)綁定與動(dòng)態(tài)綁定???????????????????????靜態(tài)綁定:編譯時(shí)綁定,通過(guò)對(duì)象調(diào)用動(dòng)態(tài)綁定:運(yùn)行時(shí)綁定,通過(guò)地址實(shí)現(xiàn)????????????????????????C++的多態(tài)性????????????????????????靜態(tài)多態(tài)性:函數(shù)多態(tài)性——函數(shù)重載?????????????????????????模板多態(tài)性——C++模板(類模板、函數(shù)模板)?動(dòng)態(tài)多態(tài)性:虛函數(shù)(只有用地址才能實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性)????????????????????????只有采用“指針->函數(shù)()”或“引用變量.函數(shù)()”的方式調(diào)用C++類中的虛函數(shù)

2、才會(huì)執(zhí)行動(dòng)態(tài)綁定。對(duì)于C++中的非虛函數(shù),因?yàn)槠洳痪邆鋭?dòng)態(tài)綁定的特征,所以不管采用什么樣的方式調(diào)用,都不會(huì)執(zhí)行動(dòng)態(tài)綁定。??????????????????C++語(yǔ)言成員函數(shù)的調(diào)用和綁定方式總結(jié)代碼形式對(duì)于虛函數(shù)對(duì)于非虛函數(shù)作用綁定方式作用綁定方式類名::函數(shù)()調(diào)用指定類的指定函數(shù)靜態(tài)綁定調(diào)用指定類的指定函數(shù)靜態(tài)綁定對(duì)象名.函數(shù)()調(diào)用指定對(duì)象的指定函數(shù)靜態(tài)綁定調(diào)用指定對(duì)象的指定函數(shù)靜態(tài)綁定引用變量.函數(shù)()調(diào)用被引用對(duì)象所屬類的指定函數(shù)動(dòng)態(tài)綁定調(diào)用引用變量所屬類的指定函數(shù)靜態(tài)綁定指針->函數(shù)()調(diào)用被引用對(duì)象所屬類的指定函數(shù)動(dòng)態(tài)綁定調(diào)用指針變量所屬類的指定函數(shù)靜態(tài)綁

3、定????????????????????????????注:被引用對(duì)象所屬類是指針或引用指向的對(duì)象的實(shí)際類型;引用變量所屬類、指針變量所屬類是定義引用變量、指針變量的類型;以上兩種類型可能相同,也可能不同。????????????????????????從上表可以看出,執(zhí)行動(dòng)態(tài)綁定的只有通過(guò)地址,即只有通過(guò)指針或引用變量才能實(shí)現(xiàn),而且還必須是虛函數(shù)。從概念上來(lái)說(shuō),虛函數(shù)機(jī)制只有在應(yīng)用于地址時(shí)才有效,因?yàn)榈刂吩诰幾g階段提供的類型信息不完全。??????????????????????????????例:編寫(xiě)程序觀察虛函數(shù)和非虛函數(shù)的綁定行為:??????????????

4、????????????代碼如下:?????????????/**//*************************************************************************?動(dòng)態(tài)綁定與靜態(tài)綁定************************************************************************/#include?class?CBase...{public:????virtual?int?func()?const????//虛函數(shù)????...{????????c

5、out<<"CBase?function!";????????return?100;????}};class?CDerive?:?public?CBase...{public:????int?func()?const????????//在派生類中重新定義虛函數(shù)????...{????????cout<<"CDerive?function!";????????return?200;????}};void?main()...{????CDerive?obj1;????CBase*?p1=&obj1;????CBase&?p2=obj1;????CBase?obj2;????

6、obj1.func();????//靜態(tài)綁定:調(diào)用對(duì)象本身(派生類CDerive對(duì)象)的?func?函數(shù)????p1->func();????//動(dòng)態(tài)綁定:調(diào)用被引用對(duì)象所屬類(派生類CDerive)的?func?函數(shù)????p2.func();????//動(dòng)態(tài)綁定:調(diào)用被引用對(duì)象所屬類(派生類CDerive)的?func?函數(shù)????obj2.func();????//靜態(tài)綁定:調(diào)用對(duì)象本身(基類CBase對(duì)象)的函數(shù)}???????????????????????????運(yùn)行結(jié)果:

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。