一、虛函式
虛函式是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...