#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 使用指標訪問非虛函式時,編譯器會根據指標本身的型別決定呼叫哪個函...