對基類與派生類物件和指標賦值的小結

2021-07-12 07:20:26 字數 717 閱讀 4839



對基類與派生類物件和指標賦值的小結

派生類物件也「是」基類物件,但兩者不同。

派生類物件可以當做基類物件,這是因為派生類包含基類的所有成員。

但是基類物件無法被當做成派生類物件,因為派生類可能具有只有派生類才有的成員。

所以,將派生類指標指向基類物件的時候要進行顯示的強制轉換,否則會使基類物件中的派生類成員成為未定義的。

總結:基類指標和派生類指標指向基類物件和派生類物件的

4種方法:

1.基類指標指向基類物件。只需要通過基類指標簡單地呼叫基類的功能。

2.派生類指標指向派生類物件。只需要通過派生類指標簡單地呼叫派生類功能。

3.將基類指標指向派生類物件是安全的,因為派生類物件「是」它的基類的物件。

但是要注意的是,這個指標只能用來呼叫基類的成員函式。

如果試圖通過基類指標呼叫派生類才有的成員函式,則編譯器會報錯。

為了避免這種錯誤,必須將基類指標強制轉化為派生類指標。然後派生類指標可以用來呼叫派生類的功能。這稱為向下強制型別轉換,這是一種潛在的危險操作。

注意:如果在基類和派生來中定義了虛函式(通過繼承和重寫),並同過基類指標在派生類物件上呼叫這個虛函式,則實際呼叫的是這個函式的派生類版本。

4.將派生類指標指向基類物件,會產生編譯錯誤。「是」關係只適用於從派生類到它的直接(或間接)基類,反過來不行。

基類物件並不包含派生類才有的成員,這些成員只能通過派生類指標呼叫。

對基類與派生類物件和指標賦值的小結

今天身體不舒服,少寫一點,但是貴在堅持,只要在學校就要更新部落格。c語言深度解剖 我用 2天時間看完了,那本書的自測題,我才做了 60多分。我覺得我面試的時候要是遇到這樣的題目,我會感覺這個公司出題很有水平。感覺這本書寫的很好,是我繼讀完林銳博士的 高質量c c 程式語言 後遇到的又一本好書。不過這...

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

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

基類指標指向派生類物件

成員函式一般化三個結論 include using std cout using std endl class employee class dev public employee int main 1.如果以 基類指標 指向 派生類物件 那麼經由該指標只能呼叫基類所定義的函式 2.如果以 派生類指...