c 多型性 虛函式

2022-07-17 22:36:18 字數 675 閱讀 9845

虛函式與純虛函式的區別:

1、擁有虛函式的類可以宣告物件,但擁有純虛函式的類不可以宣告物件(只能宣告乙個指標,並且不能給其分配記憶體),並且將這個類稱為抽象類

特點:1、虛函式是動態繫結的基礎。

2、是非靜態的成員函式。 在類的宣告中,在函式原型之前寫virtual。(不能宣告為靜態函式)

3、virtual 只用來說明類宣告中的原型,不能用在函式實現時。

4、具有繼承性,基類中宣告了虛函式,派生類中無論是否說明,同原型函式都自動為虛函式。

5、本質:不是過載宣告而是覆蓋。

6、呼叫方式:通過基類指標或引用,執行時會根據指標指向的物件的類,決定呼叫哪個函式。

虛函式範例:

#include using

namespace std;class b0 //

基類b0宣告

};class b1: public b0 //

公有派生

};class d1: public b1 //

公有派生

};void fun(b0 *ptr) //

普通函式

int main() //

主函式結果:

b0::display()

b1::display()

d1::display()

c 多型性 虛函式

c 中多型性是指通過用virtual關鍵字來繫結同名同引數的函式,實現在編譯中進行後繫結,即在編譯過程中不繫結類,在執行時與具體的物件進行繫結,這樣就可以動態地與實際聯絡 比如乙個類 animal 有乙個虛函式breath 魚類 fish 也有函式breath 狗類 dog 函式breath 具體呼...

多型性 虛函式

先來講講賦值相容規則。前面說過,派生類如果是從基類公有繼承的,則它會包含基類中除建構函式和析構函式外的所有成員,基類的公有成員也成為派生類的公有成員,又因為物件只能訪問類的公有成員,所以基類物件具有的功能,派生類物件都有。這樣就引出了賦值相容規則。賦值相容規則就是指在基類物件可以使用的地方都可以用公...

多型性 虛函式

虛函式是過載的另一種表現形式,是一種動態的過載方式。虛函式呼叫與函式體之間的聯絡在執行時才建立。c 中可以用基類的物件指標可以指向它的公有派生物件,當它指向公有派生類物件時,只能訪問派生類中從基類繼承來的成員,而不能訪問派生類中定義的成員。當指標指向不同的物件時,分別呼叫不同類的成員函式,如果將函式...