關鍵字 virtual
針對基類的不同派生類,如果派生類重新定義虛函式,那麼派生類的虛函式將覆蓋基類對應虛函式的實現。如果強制派生類定義某個函式,則可以在基類中將這個虛函式宣告為純虛函式,也就是基類不實現這個虛函式,所有實現留給派生類。
當類中含有純虛函式時,這個類就是抽象類。不能建立抽象類的物件,否則出現編譯錯誤。如果某個類從抽象類中派生,就必須實現其中的純虛函式,才能成為乙個實體類,否則繼續保持抽象類的特徵。
virtual.h
#ifndef abc
#define abc
#include #include using namespace std;
class human
;class teacher :public human
~
輸出:
teacher ---buying....
student----buying.....
利用虛函式實現動態多型性
能否用同乙個呼叫形式來呼叫派生類和基類的同名函式。在程式中,不是通過不同的物件名去呼叫不同派生層次中的同名函式,而是通過指標呼叫它們。c 中的虛函式就是用來解決動態多型問題的。所謂虛函式,就是在基類宣告函式是虛擬的,並不是實際存在的函式,然後在派生類中才正式定義此函式。下面給出乙個例子 includ...
虛函式如何實現多型 ?
虛函式聯絡到多型,多型聯絡到繼承。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。這種技術可以讓父類的指標有 多種形態 這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變的 來實現可變的演算法。比如 模板技術,rtti技術,虛函式技術,要麼是試圖...
多型實現及虛函式
多型是c 物件導向三大特性之一 多型分為兩類 1.靜態多型 函式過載和運算子過載屬於靜態多型 2.動態多型 派生類與虛函式實現執行時多型 區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式位址 class animal class cat public ...