1. 如果父類animal 中的建構函式 是 protected ,or private, 在main() 中建立父類的物件,就會報錯:不能訪問建構函式
任何乙個類的建構函式 不可以是 protected or private ,除非它不需要構造物件,只要需要構造物件就必須設定為public.
2. 父類 animal, 子類 bird從父類中繼承而來,不管是public,protected,private 哪種繼承,父類中的建構函式都被呼叫,即使父類的建構函式
是 protected 也能被呼叫,那是誰在呼叫?
難道子類在構造物件的時候預設的也構造了乙個父類的物件,這個父類的物件的初始化需要呼叫父類的建構函式,因此出現父類的建構函式被呼叫
問題是父類的建構函式是protected的,父類的物件是怎麼訪問得到的?
C 類繼承 建構函式時先構造基類
以下說明繼承類函式構造時,先構造基類 析構基類時,若沒加上virtual,只析構基類,不析構派生類 析構派生類時,同時會析構基類 1.基類析構函式有virtual include class base virtual base virtual void seta 0 class a public b...
類繼承 繼承類的建構函式
派生類不能直接訪問基類的私有成員,必須通過基類提供的公有方法。派生類不能繼承基類的建構函式,因為建構函式和成員函式存在區別 建構函式用於建立新的物件,而其他成員函式是被現有的物件呼叫。派生類建構函式必須使用基類的建構函式。建立派生類物件時,先建立基類物件,因此基類物件應該在進入派生類建構函式之前被建...
c 基類指標指向繼承類呼叫繼承類函式
類裡面過載運算子 需要使用友元函式,而友元函式,不能作為虛函式。所以,基類指標無法直接呼叫繼承類裡重構的 使用類轉換,能解決掉,基類指標 呼叫 繼承類 函式的問題。include include include using namespace std class person friend istr...