C 的繼承和派生(四)多型的實現和虛函式

2021-10-07 12:13:37 字數 1269 閱讀 6515

本篇所要講解的是包含多型,由於是在繼承的基礎上實現的,所以就乾脆放在繼承和派生這一專題了

在介紹多型前,請看下面一段**

class

do**oid

speak()

};class

pi**oid

speak()

};class

catvoid

speak()

};void

display

(dog* p)

void

display

(pig* p)

void

display

(cat* p)

intmain()

執行結果

dog-

run(

)dog-

speak()

pig-

run(

)pig-

speak()

cat-

run(

)cat-

speak

()

為了解決這個問題,c++增加了虛函式,就是在父類的成員函式宣告前增加關鍵字 virtual ,用 virtual修飾的函式成為虛函式

此時改寫後的**如下

class

animal

virtual

void

speak()

};class

dog:

public animal

void

speak()

};class

pig:

public animal

void

speak()

};class

cat:

public animal

void

speak()

};void

display

(animal* p)

intmain()

執行結果

dog-

run(

)dog-

speak()

pig-

run(

)pig-

speak()

cat-

run(

)cat-

speak

()

總結

繼承與派生 虛函式和多型

繼承和派生 class csstudent void setname const string name class cundergraduate pulic cstudent 覆蓋 bool canbaoyan 派生類的寫法 類名 public 基類名cstudent printinfo 呼叫基類...

C 繼承派生和多型的知識整理

1.繼承和派生 2.虛函式和多型 3.運算子過載的理解 4.類和物件提高 一.繼承與派生 1.基本定義 繼承與派生是同乙個過程從不同的角度看 保持已有類的特性而構成新類的過程稱為繼承 在已有類的基礎上新增自己的特性而產生新類的過程稱為派生 被繼承的已有類成為基類 父類 base class 派生出的...

C 虛函式和多型繼承

指標和引用是很好理解的,變數的引用相當於給變數取了個別名,在函式呼叫時,傳引用是會將引數列表的值改變的。include using namespace std int main 最終輸出的結果都是0x7ffdd9aff7b4,即為記憶體中儲存整型變數m的位址。對於虛函式,它是實現多型公有繼承的關鍵。...