虛函式與純虛函式的區別:
1、擁有虛函式的類可以宣告物件,但擁有純虛函式的類不可以宣告物件(只能宣告乙個指標,並且不能給其分配記憶體),並且將這個類稱為抽象類
特點:1、虛函式是動態繫結的基礎。
2、是非靜態的成員函式。 在類的宣告中,在函式原型之前寫virtual。(不能宣告為靜態函式)
3、virtual 只用來說明類宣告中的原型,不能用在函式實現時。
4、具有繼承性,基類中宣告了虛函式,派生類中無論是否說明,同原型函式都自動為虛函式。
5、本質:不是過載宣告而是覆蓋。
6、呼叫方式:通過基類指標或引用,執行時會根據指標指向的物件的類,決定呼叫哪個函式。
虛函式範例:
#include usingnamespace std;class b0 //
基類b0宣告
};class b1: public b0 //
公有派生
};class d1: public b1 //
公有派生
};void fun(b0 *ptr) //
普通函式
int main() //
主函式結果:
b0::display()
b1::display()
d1::display()
c 多型性 虛函式
c 中多型性是指通過用virtual關鍵字來繫結同名同引數的函式,實現在編譯中進行後繫結,即在編譯過程中不繫結類,在執行時與具體的物件進行繫結,這樣就可以動態地與實際聯絡 比如乙個類 animal 有乙個虛函式breath 魚類 fish 也有函式breath 狗類 dog 函式breath 具體呼...
多型性 虛函式
先來講講賦值相容規則。前面說過,派生類如果是從基類公有繼承的,則它會包含基類中除建構函式和析構函式外的所有成員,基類的公有成員也成為派生類的公有成員,又因為物件只能訪問類的公有成員,所以基類物件具有的功能,派生類物件都有。這樣就引出了賦值相容規則。賦值相容規則就是指在基類物件可以使用的地方都可以用公...
多型性 虛函式
虛函式是過載的另一種表現形式,是一種動態的過載方式。虛函式呼叫與函式體之間的聯絡在執行時才建立。c 中可以用基類的物件指標可以指向它的公有派生物件,當它指向公有派生類物件時,只能訪問派生類中從基類繼承來的成員,而不能訪問派生類中定義的成員。當指標指向不同的物件時,分別呼叫不同類的成員函式,如果將函式...