關於C 的子類指標指向父類

2022-04-06 09:01:40 字數 718 閱讀 4606

基類指標引用派生類物件

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

但是只能引用基類成員

若試圖通過基類指標引用那些只在派生類中才有的成員,編譯器會報告語法錯誤。

(解決該問題的答案是虛函式和多型性??? 這個說法不正確吧)

派生類指標引用基類的物件

用派生類指標引用基類的物件。

這種引用方式會導致語法錯誤。

派生類指標必須先強制轉換為基類指標,這種方法是不安全的。

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

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

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

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

這與第1點其實意義相通。

總之,不要用子類的指標指向父類物件。

因為子類指標可以指向子類的成員,若這些成員是父類沒有的,便產生了錯誤。

2015-11-22 21:13:51 星期日 修改

關於C 的子類指標指向父類

1,直接用基類指標引用基類物件 2,直接用派生類指標引用派生類物件 3,用基類指標引用乙個派生類物件,由於派生類物件也是基類的物件,所以這種引用是安全的,但是只能引用基類成員。若試圖通過基類指標引用那些只在派生類中才有的成員,編譯器會報告語法錯誤。解決該問題的答案是虛函式和多型性 4,用派生類指標引...

關於C 的子類指標指向父類

1,直接用基類指標引用基類物件 2,直接用派生類指標引用派生類物件 3,用基類指標引用乙個派生類物件,由於派生類物件也是基類的物件,所以這種引用是安全的,但是只能引用基類成員。若試圖通過基類指標引用那些只在派生類中才有的成員,編譯器會報告語法錯誤。解決該問題的答案是虛函式和多型性 4,用派生類指標引...

c 父類指標指向子類物件

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