基類的指標指向派生類的物件

2021-07-09 07:46:51 字數 602 閱讀 4858

說明:只要基類的成員函式是虛函式,派生類的同名函式(引數相同,返回值型別相同),函式體不同,不管有沒有顯式宣告virtual都是虛函式。

派生類中virtual關鍵字可有可無,但是也是虛函式。

結論:基類的指標指向派生類的物件,當呼叫同名的成員函式時:

1)如果在基類中成員函式為虛函式,那麼基類指標呼叫的就是派生類的同名函式。virtual void display();

可以這麼理解:因為該函式是虛的,所以會找真正實現的那個函式,所以呼叫派生類b中的 b class virtual display.

2)如果基類中成員函式為非虛函式,則呼叫的是基類的成員函式。void show();

因為基類是非虛的,已經完全實現了,所以沒有必要再呼叫派生類的了,就呼叫基類的a class show()

基類指標指向派生類物件

成員函式一般化三個結論 include using std cout using std endl class employee class dev public employee int main 1.如果以 基類指標 指向 派生類物件 那麼經由該指標只能呼叫基類所定義的函式 2.如果以 派生類指...

基類指標指向派生類物件

父類子類指標函式呼叫注意事項 1,如果以乙個基礎類指標指向乙個衍生類物件 派生類物件 那麼經由該指標只能訪問基礎類定義的函式 靜態聯翩 2,如果以乙個衍生類指標指向乙個基礎類物件,必須先做強制轉型動作 explicit cast 這種做法很危險,也不符合生活習慣,在程式設計上也會給程式設計師帶來困擾...

基類指標指向派生類物件

派生類物件也 是 基類物件,但兩者不同。派生類物件可以當做基類物件,這是因為派生類包含基類的所有成員。但是基類物件無法被當做成派生類物件,因為派生類可能具有只有派生類才有的成員。所以,將派生類指標指向基類物件的時候要進行顯示的強制轉換,否則會使基類物件中的派生類成員成為未定義的。總結 基類指標和派生...