學習虛函式 多型

2021-10-07 08:00:20 字數 909 閱讀 2724

#ifndef person_h

#define person_h

#include

using

namespace std;

class

person

virtual

void

output()

//此處寫了分號,後面就要再定義寫成{},這樣才有函式體};

class

student

:public person

;class

teacher

:public person

;#endif

// person_h

#include

"person.h"

#include

using

namespace std;

void student::

input()

void student::

output()

void teacher::

input()

void teacher::

output()

#include

#include

"person.h"

using

namespace std;

intmain

(int argc,

char

*ar**)

/***當基類的成員函式功能不足以滿足所有子類時,可以將該成員函式

宣告為虛函式,供子類改寫**

有虛函式的基類會為這物件多分配4個位元組,用於存放虛函式列表。

虛函式列表是存放函式指標的陣列

派生類對基類虛函式的重新宣告定義就是函式的重寫*/

虛函式多型

一 知識點 1 乙個操作隨著所傳遞的物件型別的不同能夠做出不同的反應,其行為模式成為多型。p413 2 基類與派生類的同名操作,只要標記上virtual,則該操作便具有多型性。p416 3 一旦標記基類的函式為虛函式,便有連鎖反應,後面繼承的類中一切同名成員函式都變成了虛函式。如果是引發實際複製動作...

多型 虛函式

繼承模式分為單繼承和多繼承 在多繼承中會有相應的一些問題產生,比如資料冗餘,二義性等問題,那麼我們要如何解決這種問題。利用虛繼承便可以解決,在虛繼承的時候由虛基表可以去除資料冗餘和二義性。那麼函式可不可以寫成是虛函式呢?寫成虛函式有什麼作用?在派生類裡重寫基類的虛函式可以實現多型。include u...

虛函式多型

虛函式訪問知識點 王道程式設計師求職寶典 p163 1 與普通函式一樣,虛函式可通過物件名來呼叫,此時編譯器採用靜態聯編。通過物件名訪問虛函式時,呼叫哪個類的函式取決於定義物件名的型別。物件是基類就調基類,物件是子類就調相應的子類。2 使用指標訪問非虛函式時,編譯器會根據指標本身的型別決定呼叫哪個函...