1. 程式人生 > >C++之普通成員函式、虛擬函式以及純虛擬函式的區別與用法要點

C++之普通成員函式、虛擬函式以及純虛擬函式的區別與用法要點

普通成員函式是靜態編譯的,沒有執行時多型,只會根據指標或引用的“字面值”類物件,呼叫自己的普通函式;虛擬函式為了過載和多型的需要,在基類中定義的,即便定義為空;純虛擬函式是在基類中宣告的虛擬函式,它可以再基類中有定義,且派生類必須定義自己的實現方法。

假設我們有三個類Person、Teacher、Student它們之間的關係如下:


這裡寫圖片描述
類的關係圖 

普通成員函式

【Demo1】 
根據這個類圖,我們有下面的程式碼實現

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 #ifndef __OBJEDT_H__ #define __OBJEDT_H__ #include <string> #include <iostream>