繼承 基類和派生類指標

2021-07-04 20:29:20 字數 579 閱讀 6141

1,直接用基類指標引用基類物件

2,直接用派生類指標引用派生類物件

3,用基類指標引用乙個派生類物件,由於派生類物件也是基類的物件,所以這種引用是安全的,

但是只能引用基類成員。若試圖通過基類指標引用那些只在派生類中才有的成員,編譯器會報告語法錯誤。(解決該問題的答案是虛函式和多型性)

4,用派生類指標引用基類的物件。這種引用方式會導致語法錯誤。派生類指標必須先強制轉換為基類指標,這種方法是安全的。 

而在侯捷的深入淺出mfc中第二章c++重要性質中:

1、如果你以乙個"基類之指標"指向乙個"派生類之物件",那麼經由該指標你只能呼叫該基類所定義的函式

2、如果你以乙個「派生類之指標」指向乙個「基類之物件」,你必須先做明顯的轉型操作(explicit cast),這種作法很危險。

3、如果基類和派生類都定義了「相同名稱之函式」,那麼通過物件指標呼叫成員函式時,到底呼叫了那個函式,必須視該指標的原始型別而定,而不是視指標實際所指的物件的型別而定,這與第1點其實意義相通。

#include

#include

using namespace std;

class a

繼承 基類和派生類

說明派生類的生成和使用 include using namespace std class test1 基類 test1 int a x a void disp class test2 public test1 派生類 test2 int a,int b test1 a void disp intm...

關於基類指標 派生類指標 基類物件派 生類物件問題

1 基類指向派生類的指標 2 派生類指向基類的指標 3 以及將派生類指標強制轉換為基類指標 4 將基類指標強制轉換為派生類指標 無論是基類指向派生類還是派生類指向基類,重點就是哪個類的指標就呼叫哪個類的方法,而輸出的是指標指向的物件。基類指向派生類的指標即將派生類物件賦給基類指標,如果輸出的話,呼叫...

基類指標指向派生類

include class a virtual void vt private void a2 protected void a3 class b public a virtual void vt private void b2 protected void b3 int main 結論 1 對於派...