基類物件與派生類物件的關係

2021-08-21 04:32:19 字數 656 閱讀 7443

基類物件與派生類物件的使用關係

1. 派生類物件作為基類物件處理

由於派生類具有所有基類的成員,所以把派生類的物件賦給基類物件是合理的,不過要求這種繼承方式必須是public方式。但是,反過來賦值會使基類中一具有派生類的成員(因為派生類的成員通常是比基類的成員多),所以這是不允許的。

2. 基類指標指向派生類物件

因為派生類物件也是基類物件,所以指向派生類物件的指標可以轉換為指向基類物件的指標,這種引用方式是安全的,但是用這種方式只能引用基類成員。如果試圖通過基類指標引用那些只有在派生類中才有的成員,編譯系統會報告錯誤。

#include

#include

class stud

void disp()

};class unstud:public stud

};class grstud:public stud

};int main()

3. 派生類指標強制指向基類物件

直接用派生類指標指向基類的物件,這種方式會導致語法錯誤。但可以將派生類強制轉換為基類指標,然後就可以呼叫基類的成員了。這種強制轉換使用的靜態轉型運算子,其使用格式如下:

派生類物件指標=static_cast《派生類*>(&基類物件);

看了這個  還是有點不太明白為什麼派生類物件可以訪問基類成員這句話是錯的

基類物件與派生類物件的使用關係

基類物件與派生類物件的使用關係 1.派生類物件作為基類物件處理 由於派生類具有所有基類的成員,所以把派生類的物件賦給基類物件是合理的,不過要求這種繼承方式必須是public方式。但是,反過來賦值會使基類中一具有派生類的成員 因為派生類的成員通常是比基類的成員多 所以這是不允許的。2.基類指標指向派生...

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

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

基類物件和派生類物件之間的賦值關係

基類物件和派生類物件之間的賦值關係具體是指 基類的物件可不可以賦值給子類物件或者子類物件可不可以賦值給基類物件。一般來說,只有派生類的物件可以賦值給基類的物件,反之,則不可以。例如 father a 基類物件 son b 派生類物件 a b 可以 b a 不可以為什麼派生類物件可以給基類物件賦值呢?...