基類指標與派生類指標的相互轉換

2021-05-25 15:57:53 字數 574 閱讀 9534

基類指標與派生類指標的相互轉換 1,直接用基類指標引用基類物件 2,直接用派生類指標引用派生類物件 3,用基類指標引用乙個派生類物件,由於派生類物件也是基類的物件,所以這種引用是安全的, 但是只能引用基類成員。若試圖通過基類指標引用那些只在派生類中才有的成員,編譯器會報告語法錯誤。(解決該問題的答案是虛函式和多型性) 4,用派生類指標引用基類的物件。這種引用方式會導致語法錯誤。派生類指標必須先強制轉換為基類指標,這種方法是安全的。 而在侯捷的深入淺出mfc中第二章c++重要性質中: 1、如果你以乙個"基類之指標"指向乙個"派生類之物件",那麼經由該指標你只能呼叫該基類所定義的函式 2、如果你以乙個「派生類之指標」指向乙個「基類之物件」,你必須先做明顯的轉型操作(explicit cast),這種作法很危險。 3、如果基類和派生類都定義了「相同名稱之函式」,那麼通過物件指標呼叫成員函式時,到底呼叫了那個函式,必須視該指標的原始型別而定,而不是視指標實際所指的物件的型別而定,這與第1點其實意義相通。 #include

#include

using namespace std; class a { public: char str[20]; void f(){cout<<"class a"<

基類指標與派生類指標的相互轉換

1 基類指標不能直接賦給派生類指標 2 若使用顯示型別轉換,則正確使用指標是程式設計師的責任 3 由於基類指標指向的是基類物件,強制轉換後,派生類指標可以正確訪問到基類物件中的資料,但是派生類物件的資料實際上是不存在的,若強行訪問,則危險。基類指標,派生類指標,基類物件,派生類物件的混合匹配 1,直...

C 基類 派生類指標轉換

主要用到static cast和dynamic cast dynamic cast 1.dynamic cast是非常安全的,因為在不行的時候他會返回空指標 2.在多繼承中,由乙個基類轉換到另乙個基類,只能用dynamic cast 但是dynamic cast的使用是有侷限的,也就是基類一定要有虛...

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

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