在公有派生的情況下,有以下三條賦值相容規則。
上面三條反過來是不成立的。例如,不能把基類物件賦值給派生類物件。
下面的程式能夠成功編譯,充分說明了上述三條規則。
class a ;
class b : public a //公有派生
;int main()
將派生類物件賦值給基類物件(如上面程式中的a=b;
語句),在賦值號沒有被過載的情況下,所做的操作就是將派生類物件中的基類物件逐個位元組地複製到=
左邊的基類物件中。
在公有派生的情況下,可以說,派生類物件也是基類物件,任何本該出現基類物件的地方,如果出現的是派生類的物件,也是沒有問題的。但如果派生方式不是 public,而是 private 或 protected,那麼上面這個結論就不成立了。
C 派生類中如何初始化基類物件
今天收到盛大的面試,問我乙個問題,關於派生類中如何初始化基類物件,我在想派生類對於建構函式不都是先構造基類物件,然後在構造子類物件,但是如果我們在成員初始化列表先初始化派生類的私有成員,在函式內去呼叫基類的建構函式,能編譯通過嗎?或者當我們定義了基類的預設建構函式,而沒有去在派生類的建構函式中顯示的...
C 派生類中如何初始化基類物件
今天收到盛大的面試,問我乙個問題,關於派生類中如何初始化基類物件,我在想派生類對於建構函式不都是先構造基類物件,然後在構造子類物件,但是如果我們在成員初始化列表先初始化派生類的私有成員,在函式內去呼叫基類的建構函式,能編譯通過嗎?或者當我們定義了基類的預設建構函式,而沒有去在派生類的建構函式中顯示的...
C 基類和派生類
本講討論基類和派生類的基本概念。通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在c 語言中,乙個派生類可以從乙個基類派生,也可...