C 學習筆記(十三)動態多型 虛函式

2021-08-17 08:22:01 字數 683 閱讀 3187

#include

using namespace std;

// 基類

class animal

// 虛函式

virtual void sleep()

};class cat :public animal

// 虛函式 的重定義  *****>  函式重寫

void sleep()

};class fish :public animal

// 函式 重定義

void sleep()

};// 基類指標

// 期望做的事情:同樣的呼叫語句

// 1、當基類指標指向基類物件的時候,呼叫基類自己的成員函式

// 2、當基類指標指向派生類物件的時候,呼叫派生類的同名成員函式

// *****> 多型:一種呼叫語句有多種不同的表現形態

// *****> 實現:通過 虛函式 來實現   ---> 在函式宣告前加 virtua 關鍵字,該函式就變為虛函式

void func(animal *pa)

// 多型實現條件:

// 1、要有繼承

// 2、要有虛函式

// 3、要有基類指標指向派生類物件

int main()

int main1()

動態多型 虛函式

使用平台 vs2013 動態多型 動態繫結 在程式執行期間,判斷所引用物件的實際型別,根據實際的型別呼叫相應的方法。動態繫結的條件 1.必須是虛函式 2.通過基類型別的引用或者指標來呼叫虛函式。對於有虛函式的類,編譯器都會維護一張表,物件的前四個位元組就是指向虛表的指標。重寫 覆蓋 不再同一作用域 ...

C 學習筆記23 虛函式和多型

虛函式 1 虛函式定義 在類的定義中,前面有virtual關鍵字的成員函式就是虛函式。class base 2 int base get virtual關鍵字只用在類定義裡的函式宣告中,寫函式體時不用。建構函式和靜態成員函式不能是虛函式 3 虛函式和普通函式差別 虛函式可以參與多型,而普通函式不可以...

學習虛函式 多型

ifndef person h define person h include using namespace std class person virtual void output 此處寫了分號,後面就要再定義寫成 這樣才有函式體 class student public person clas...