頻道欄目
首頁 > 程序開發 > 軟件開發 > C++ > 正文
關于C++多態的基礎知識講解
2018-07-27 15:23:12         來源:c243311364的博客  
收藏   我要投稿

一.多態性有兩種表現形式:

1)編譯時多態性:同一對象在收到相同的消息卻產生不同的函數調用,一般通過函數重載來實現,在編譯時就實現了綁定,屬于靜態綁定。

2)運行時多態性:不同對象在收到相同消息時產生不同的動作,一般通過虛函數來實現。

二.多態和非多態的實質區別

函數地址為動態綁定還是靜態綁定。

三.多態的作用

對于封裝,可以使代碼模塊化。

對于繼承,可以擴展已經存在的代碼。

而多態,是為了接口重用。

四.多態最常見的用法

最常見的用法就是聲明基類的指針,利用該指針指向任意一個子類對象,調用相應的虛函數,可以根據指向的子類的不同而實現不同的方法。如果沒有使用虛函數的話,即沒有利用C++多態性,則利用基類指針調用相應的函數的時候,將總被限制在基類函數本身,而無法調用到子類中被重寫過的函數。因為沒有多態性,函數調用的地址將是一定的,而固定的地址將始終調用到同一個函數,這就無法實現一個接口,多種方法的目的了。

五.擴展了解隱藏規則

本來僅僅區別重載與覆蓋并不算困難,但是C++的隱藏規則使問題復雜性陡然增加。

這里“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下:

**1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏。(注意別和重載混淆)

2)如果派生類的函數與基類的函數相同,但是基類沒有virtual關鍵字,那么基類的函數將被隱藏。(注意別和覆蓋混淆)。**

點擊復制鏈接 與好友分享!回本站首頁
上一篇:C++關于左值,右值,左值引用,右值引用,std::move, std::foward等知識講解
下一篇:C++編程之引用和拷貝構造函數、按值傳遞和返回、位拷貝與初始化等實例
相關文章
圖文推薦
文章
推薦
點擊排行

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

重庆快乐十分开奖记录