多繼承多型

2021-08-06 03:37:19 字數 1350 閱讀 9395

#include "iostream"

using namespace std;

/*c++中沒有介面的概念

c++中可以使用純虛函式實現介面

介面類中只有函式原型定義,沒有任何資料的定義。

*/class inte***ce1

;class inte***ce2

;class parent

;class child : public parent, public inte***ce1, public inte***ce2

{public:

void print()//在子類中實現

{ cout<<"child::print"

1 構造乙個物件的時候,必須知道物件的實際型別,而虛函式行為是在執行期間確定實際型別的。而在構造乙個物件時,由於物件還未構造成功。編譯器無法知道物件 的實際型別,是該類本身,還是該類的乙個派生類,或是更深層次的派生類。無法確定。。。

2 虛函式的執行依賴於虛函式表。而虛函式表在建構函式中進行初始化工作,即初始化vptr,讓他指向正確的虛函式表。而在構造物件期間,虛函式表還沒有被初 始化,將無法進行。

虛函式的意思就是開啟動態繫結,程式會根據物件的動態型別來選擇要呼叫的方法。然而在建構函式執行的時候,這個物件的動態型別還不完整,沒有辦法確定它到底是什麼型別,故建構函式不能動態繫結。(動態繫結是根據物件的動態型別而不是函式名,在呼叫建構函式之前,這個物件根本就不存在,它怎麼動態繫結?)

請談談你對多型的理解:

多型的實現效果

多型:同樣的呼叫語句有多種不同的表現形態;

多型實現的三個條件

有繼承、有

virtual

重寫、有父類指標(引用)指向子類物件。

多型的

c++實現

virtual

關鍵字,告訴編譯器這個函式要支援多型;不是根據指標型別判斷如何呼叫;而是要根據指標所指向的實際物件型別來判斷如何呼叫

多型的理論基礎

動態聯編

pk靜態聯編。根據實際的物件型別來判斷重寫函式的呼叫。

多型的重要意義

設計模式的基礎

是框架的基石。

實現多型的理論基礎

函式指標做函式引數 c

函式指標是

c++至高無上的榮耀。

c函式指標一般有兩種用法(正、反)。

c 多繼承多型

如果乙個類中存在虛函式,在宣告類的物件時,編譯器就會給該物件生成乙個虛函式指標,該虛函式指標指向該類對應的虛函式表。多型的實現是因為使用了一種動態繫結的機制,在編譯期間不確定呼叫函式的位址,在呼叫虛函式的時候,去查詢虛函式指標所指向的虛函式表。派生類生成的物件中的虛函式指標指向的是派生類的虛函式表,...

C 多型 繼承多型

什麼是多型?個人理解為 在程式語言繼承關係中,子類能替代父類,表現出不同的行為。換句話說 在繼承關係中,乙個類被例項化被其子類替代,子類中有父類的虛方法重寫,或者有父類同名方法 new 呼叫相同方法時候,將表現出子類或者父類中不同行為 老闆,上 static void main string arg...

繼承 多繼承

一 繼承 1 封裝 self引數傳入的是建立的物件,self可以直接將物件帶引數傳入類中方法,這種在物件中封裝資料,對類進行了優化的方法就叫封裝。2 當乙個繼承自另乙個累的時候,會先去子類裡面找,如果有先呼叫沒有去夫類找。1 class rectangle 矩形類 def init self,len...