虛函式
1 虛函式定義:在類的定義中,前面有virtual關鍵字的成員函式就是虛函式。
class base
;2 int base::get(){}
--virtual關鍵字只用在類定義裡的函式宣告中,寫函式體時不用。
--建構函式和靜態成員函式不能是虛函式
3 虛函式和普通函式差別:虛函式可以參與多型,而普通函式不可以。
多型的表現形式一
1 派生類的指標可以賦給基類指標
2 通過基類指標呼叫基類和派生類中的同名虛函式時:
(1)若該指標指向乙個基類的物件,那麼被呼叫是基類的虛函式
(2)若該指標指向乙個派生類的物件,那麼被呼叫的時派生類的虛函式
這種機制就叫做多型
3 例子(見本工程duotai1.cpp)
//
// 多型表現形式一案例
//#include
using
namespace std;
classa}
;classb:
public a};
intmain()
多型的表現形式二
1 派生類的物件可以賦給基類物件
2 通過基類引用呼叫基類和派生類中的同名虛函式時:
(1)若該引用引用的是乙個基類的物件,那麼被呼叫是基類的虛函式
(2)若該引用引用的是乙個派生類的物件,那麼被呼叫的是派生類的虛函式
這種機制也叫做「多型」
3 例子(見duotai1.cpp)
多型簡單例子(見本工程duotai2.cpp)
//
// 多型簡單例子
//#include
using
namespace std;
classa}
;classb:
public a};
classd:
public a};
classe:
public b};
intmain()
多型的用途:
增強程式的可擴充性
c 多型和虛函式
c 有三大特性 封裝,繼承,多型 多型是物件導向程式設計的乙個重要特徵,多型就是乙個東西有多重狀態,具有不同功能的函式可以用乙個函式名,這樣就可以用乙個函式名實現不同的功能 靜態多型和動態多型靜態多型是利用過載實現的,在程式編譯時確定要呼叫的是哪個函式,也稱為編譯時多型。動態多型是利用虛函式實現的,...
c 虛函式和多型 虛函式表
參考 1 c primer plus 第六版 2 中國大學慕課 程式設計與演算法 三 在類的定義中,前面有virtual關鍵字的成員函式就是虛函式 class a 類外函式定義 void a function 說明 1 virtual關鍵字只需要在類定義裡的函式宣告時加上,函式定義時不用加 2 建構...
C 學習筆記(十三)動態多型 虛函式
include using namespace std 基類 class animal 虛函式 virtual void sleep class cat public animal 虛函式 的重定義 函式重寫 void sleep class fish public animal 函式 重定義 vo...