C 虛函式的作用及例項說明

2021-07-28 13:23:16 字數 926 閱讀 3651

一、虛函式

虛函式是c++用於實現多型(polymorphism)的機制,核心理念就是通過基類訪問派生類定義的函式。定義虛函式是為了用基類的指標來呼叫子類的函式。

下面介紹的是虛函式的乙個典型應用:

#includeusing namespace std;

class a

結果下圖所示:

說明:**中的指標t是指向類a的。因此呼叫a的print函式。

若將上面的**做如下修改:

class a

{ public:

virtual void print()

{cout<

那麼結果如下:

將類a中的print函式加上virtual 函式的定義,那麼指標t雖然是指向類a的,但是卻呼叫b的print函式。

虛函式只能借助指標或者引用來達到虛函式的效果。

二、純虛函式

純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法,在基類中實現純虛函式的方法是在函式原型後加「=0」,如:

virtual void print()=0;

引入原因:

(1)為了方便使用多型性,常需要在基類中定義虛函式(純虛函式);

(2)很多情況下,基類本身生成物件是不合理的。例如:動物作為乙個基類可以派生出老虎、孔雀等子類,但動物本身生成物件明顯不合理。

為了解決上述的問題,引入純虛函式的概念,帶有純虛函式的類稱為抽象類。

C 中虛函式的作用及用法

虛函式聯絡到多型,多型聯絡到繼承。所以本文中都是在繼承層次上做文章。沒了繼承,什麼都沒得談。下面是對c 的虛函式這玩意兒的理解。一,什麼是虛函式 如果不知道虛函式為何物,但有急切的想知道,那你就應該從這裡開始 簡單地說,那些被virtual關鍵字修飾的成員函式,就是虛函式。虛函式的作用,用專業術語來...

C 虛函式的說明

虛函式的幾點說明 1.當乙個成員函式定義為虛函式時,其派生類中的同名函式也自動為虛函式。無論其是否新增了 virtual 關鍵字。為了能良好的閱讀 上。2.父類的虛函式,就是為了讓子類中的同名成員函式覆蓋。這樣,父類物件的指標就可以指向子類物件,並呼叫子類的同名函式。3.純虛函式。用於定義介面。父類...

C 虛函式例項

include using namespace std 線 class line line line float len m len len 矩形 class rec public line rec rec float len,float width line len m width width f...