1. 程式人生 > >繼承的一點認識

繼承的一點認識

() 函數 使用 class style 技術分享 一個 TP 想要

在類的繼承當中,如果派生類繼承自父類。

派生類想要調用父類的函數只需要
 1 class A{
 2 public:
 3        computePay(); 
 4 }
 5 
 6 class B:public A
 7 {
 8 public:
 9         computePay();
10 }
11 B b1;
12 A a1;
13 b1.A::computePay();
14 b1.computePay();

但假如使用了指針指向一個類。

1 A *p;
2 B *b;
3 B b1;
4 p = &b1;
5 b = &b1;
6 p->computePay(); //
調用的是 A的函數 7 b->computePay(); //調用的是B的函數

到底調用哪個函數,視指針的原始類型而定。

由此可以得出三個結論:

一、以基類指針指向衍生類對象,由該指針只能調用基類所定義的函數

技術分享圖片

二、如果以衍生類指針指向一個基類對象,要先做顯示的轉型動作(不建議使用)

技術分享圖片

三、基類和衍生類都定義了相同名稱的成員函數,透過對象指針調用成員函數時,視指針的原型而定。

技術分享圖片

繼承的一點認識