色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > c多態(tài)的作用,讓你快速學(xué)會c多態(tài)

c多態(tài)的作用,讓你快速學(xué)會c多態(tài) 時間:2018-08-29      來源:未知

作用:

什么是多態(tài):調(diào)用同一個函數(shù)(接口)表現(xiàn)出不同的結(jié)果

多態(tài)按字面的意思就是多種形態(tài)。當(dāng)類之間存在層次結(jié)構(gòu),并且類之間是通過繼承關(guān)聯(lián)時,就會用到多態(tài)。

C++ 多態(tài)意味著調(diào)用成員函數(shù)時,會根據(jù)調(diào)用函數(shù)的對象的類型來執(zhí)行不同的函數(shù)。

函數(shù)重寫(函數(shù)覆蓋):

1. 函數(shù)名相同

2. 入?yún)⒁粯樱祷刂迪嗤?/p>

3. 作用域不一樣,一個位于基類,一個位于派生類。

4. 基類的函數(shù)必須加virutal,派生類的同名函數(shù)可以加可不加。

5. 訪問限定符可以不一樣

虛函數(shù):

虛函數(shù) 是在基類中使用關(guān)鍵字 virtual 聲明的函數(shù)。在派生類中重新定義基類中定義的虛函數(shù)時,會告訴編譯器不要靜態(tài)鏈接到該函數(shù)。

我們想要的是在程序中任意點可以根據(jù)所調(diào)用的對象類型來選擇調(diào)用的函數(shù),這種操作被稱為動態(tài)鏈接,或后期綁定。

純虛函數(shù):

您可能想要在基類中定義虛函數(shù),以便在派生類中重新定義該函數(shù)更好地適用于對象,但是您在基類中又不能對虛函數(shù)給出有意義的實現(xiàn),這個時候就會用到純虛函數(shù)。

怎么樣實現(xiàn)多態(tài)?

1. 派生類重寫基類的虛函數(shù)

2. 通過基類的指針指向派生類對象,通過基類指針調(diào)用虛函數(shù),可以保證接口高度統(tǒng)一

賦值兼容規(guī)則

基類的指針可以指向派生類對象,而派生類指針不能指向基類的對

純虛函數(shù):虛函數(shù) =0;

包含純虛函數(shù)的類叫抽象類,抽象類無法創(chuàng)建對象。函數(shù)重載、函數(shù)重寫(覆蓋)、函數(shù)隱藏的區(qū)別?

1、成員函數(shù)覆蓋(override,也稱重寫)

是指派生類重新定義基類的虛函數(shù),特征如下:

A、不同的作用域(分別位于派生類與基類)

B、函數(shù)名字相同

C、參數(shù)相同

D、基類函數(shù)必須有virtual關(guān)鍵字,不能有static

E、返回值相同

F、重寫函數(shù)的權(quán)限訪問限定符可以不同

2、函數(shù)重載(overload)

是指函數(shù)名相同,參數(shù)不同(數(shù)量、類型、次序),特征如下:

A、相同的范圍(在同一個作用域中)

B、函數(shù)名字相同

C、參數(shù)不同

D、virtual 關(guān)鍵字可有可無

E、返回值可以不同靜態(tài)聯(lián)編(靜態(tài)鏈接)

是指在編譯階段就將函數(shù)實現(xiàn)和函數(shù)調(diào)用關(guān)聯(lián)起來,因此靜態(tài)聯(lián)編也叫早綁定,函數(shù)重載是早綁定

動態(tài)聯(lián)編(動態(tài)鏈接)

是指在程序執(zhí)行的時候才將函數(shù)實現(xiàn)和函數(shù)調(diào)用關(guān)聯(lián),因此也叫運行時綁定或者晚綁定。

C++中一般情況下聯(lián)編也是靜態(tài)聯(lián)編,但是一旦涉及到多態(tài)和虛擬函數(shù)就必須要使用動態(tài)聯(lián)編了

3、成員函數(shù)隱藏(也稱重定義,盡量不去寫)

A、不在同一個作用域(分別位于派生類與基類)

B、函數(shù)名字相同

C、返回值可以不同

D、參數(shù)不同。此時,不論有無 virtual 關(guān)鍵字,基類的函數(shù)將被隱藏(注意與重載的區(qū)別)

E、參數(shù)相同,但是基類函數(shù)沒有 virtual關(guān)鍵字。此時,基類的函數(shù)被隱藏(注意與覆蓋的區(qū)別)

多態(tài)的原理:虛函數(shù)表

通過基類的指針或引用調(diào)用虛函數(shù),到底調(diào)用是基類的虛函數(shù)還是派生類重寫后的虛函數(shù),

看的是對象,而不是指針的數(shù)據(jù)類型。

原因:虛函數(shù)的調(diào)用會查虛函數(shù)表,每個對象的虛函數(shù)表不一樣,調(diào)用的虛函數(shù)就不一樣。

虛析構(gòu)

析構(gòu)函數(shù)前為什么加virtual關(guān)鍵字?

只有虛函數(shù)的調(diào)用,是看對象不同查對象的虛函數(shù)表,其他看指針或引用的數(shù)據(jù)類型。

如果不在析構(gòu)函數(shù)前加virtual ,在某些情況下會產(chǎn)生內(nèi)存泄漏。推薦在析構(gòu)函數(shù)前加virtual

構(gòu)造函數(shù)前為什么加explicit關(guān)鍵字?

給單參數(shù)的構(gòu)造函數(shù)前使用explicit關(guān)鍵字,阻止可能產(chǎn)生的隱式轉(zhuǎn)換:由成員變量類型轉(zhuǎn)換為類類型。

上一篇:linux shell命令大全(都是隨堂筆記)

下一篇:linux系統(tǒng)移植的詳細(xì)步驟

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 久久露脸国产精品| 在线视频日本亚洲性| 国产精品一区=区| 97在线免费视频| 91精品久久久久久久久中文字幕| 日韩二区三区在线| 精品成人乱色一区二区| 日韩中文字幕精品| www.午夜精品| 欧美性做爰毛片| 国产成人精品久久亚洲高清不卡| 亚洲黄页视频免费观看| 福利视频导航一区| 成人有码视频在线播放| 久热精品视频在线| 国产美女久久久| 欧美日韩第一页| 亚洲丁香久久久| 午夜精品久久久久久久99热| 欧洲成人在线视频| 亚洲欧美日本精品| 欧美亚洲另类在线| 日韩在线免费观看视频| 91精品国产综合久久久久久蜜臀| 久久精品电影网| 欧美午夜性色大片在线观看| 亚洲a区在线视频| 国产亚洲精品美女| 欧美性猛交xxxx偷拍洗澡| 亚洲国产欧美一区二区丝袜黑人| 欧美视频在线免费| 亚洲人高潮女人毛茸茸| 日韩美女视频免费看| 精品日韩中文字幕| 亚洲女人天堂av| 国产伦精品一区二区三区精品视频| 亚洲网址你懂得| 日本成熟性欧美| 在线观看国产成人av片| 9.1国产丝袜在线观看| 亚洲另类欧美自拍|