C 派生類與基類的賦值

2021-07-11 03:14:39 字數 343 閱讀 5932

class a };

class b:a };

void main()

可以把派生類賦值給基類。我們知道賦值,是呼叫了類的賦值運算子。所以當派生類給基類賦值時,呼叫了基類的複製運算子函式,該函式的引數是基類物件的const 引用,那麼

a=b,實際就是用基類引用派生類,然後將派生類中基類部分賦值給對應的基類成員。

而b=a報錯是因為派生類不能引用基類。

note:基類可以引用或指標繫結到派生類。因為派生類在構造的時候,會先構造基類部分,所以派生類物件中包含基類物件,那麼基類就可以通過引用或指標動態的繫結到派生類物件中的基類部分,反之則不行,因為基類中可能沒有派生類自定義的成員。

基類與派生類

初學c 的時候,很多人都很頭疼各種訪問標號下基類與派生類的關係,其實,死記硬背肯定不是乙個好的辦法,要知道它們之間的關係,先要分析一下訪問標號是如何產生的 在沒有繼承之前,類的只有兩類使用者 類本身和類的使用者。把類成員通過public和private劃分恰好體現了這一分割 類的使用者只能訪問類的p...

理解C 基類與派生類

通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在c 語言中,乙個派生類可以從乙個基類派生,也可以從多個基類派生。從乙個基類派生...

c 派生類物件賦值給基類物件

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