017 linuxC 之 多型的引入

2021-10-01 16:31:21 字數 1209 閱讀 2761

多型:一種介面,多種方法(同一種呼叫方法,根據不同的物件,呼叫不同類中的函式)

靜態聯編:非虛函式,在編譯時確定好

動態聯編: 1. 物件裡有指標,指向虛函式表

2. 通過指標,找到表,呼叫虛函式

3. 圖二

4. virtual來定義為虛函式

(一)首先我們來看靜態聯編,非多型的程式

#include

#include

#include

using namespace std;

class human };

class englishman : public human };

class chinese : public human };

void

test_eating

(human& h)

intmain

(int argc,

char

**ar**)

執行結果,呼叫的全部是human中的,並不是我們想要的,因為這裡是靜態編譯進去了,也就是說程式在編譯時候就已經確定好就呼叫human中的

(二)動態編譯,實現多型,在類中定義時候增加virtual來實現這個函式為虛函式

#include

#include

#include

using namespace std;

class human };

class englishman : public human };

class chinese : public human };

void

test_eating

(human& h)

intmain

(int argc,

char

**ar**)

執行結果,就實現了同一介面,不同呼叫的方法了

(三)更多具體的,,,,,,,

類之多型的理解

多型的理解 使用基類指標呼叫派生類成員 include using namespace std class left int left class right int right class bottom public left,public right void funleft void funr...

java之多型的型別

多型分為兩種 通用的多型和特定的多型。兩者的區別是前者對工作的型別不加限制,允許對不同型別的值執行相同的 後者只對有限數量的型別有效,而且對不同型別的值可能要執行不同的 通用的多型又分為引數多型 parametric 和包含多型 inclusion 特定的多型分為過載多型 overloading 和...

java之多型的使用

首先,什麼是多型?我們應該從什麼角度來理解多型?其實,我們不妨把多型理解成一種事物的多種存在形態,比如,貓和狗都可以變成動物,而動物又可以變成貓和狗。為了充分理解多型,我們可以從以下這幾個方面來理解多型。第 一 從多型的體現方面 我們使用多型的時候,建立的是父類的引用,開闢的是子類的空間,由於沒有開...