引數列賦值 和繼承類給呼叫基類建構函式

2021-09-27 09:30:52 字數 718 閱讀 2543

一.你注意啊 這兩個都不是一回事

我以前總以為 在繼承類建構函式構造基類部分有兩種方法

一種是 引數列

一種是 呼叫基類建構函式

不對的 從概念和意義上說技能在繼承類建構函式裡呼叫基類建構函式並給基類建構函式傳遞引數

二.那為什麼我會有這種錯覺呢 那是因為

你以為在用引數列 給基類賦值 其實你無法 access基類的 private成員 更別說給構造基類部分了對吧

這是一方面 ;另一方面 那是因為基類 沒有帶參建構函式你即便不在引數列 給基類成員變數乙個乙個賦值

他自己在引數列呼叫那個預設的無參建構函式了你在對他賦值 只是對 他的值的改變。

三所以記住

繼承類建構函式想要構造基類部分 

必須呼叫基類建構函式 必須呼叫基類建構函式 必須呼叫基類建構函式

如果基類是無參的建構函式 你不呼叫 系統也會預設自己呼叫

如果有參建構函式 那麼必須在小括號和花括號之間呼叫 並給他傳遞引數

四.那引數列 只有乙個作用

就是在小括號和花括號之間 給自己能訪問的成員 以成員(成員值)的樣式賦值

僅此而已

五:

class cu :public cbase

};

引數列 是引數列 呼叫基類建構函式並傳參 是那樣 這兩個不一樣!!!

c 基類指標指向繼承類呼叫繼承類函式

類裡面過載運算子 需要使用友元函式,而友元函式,不能作為虛函式。所以,基類指標無法直接呼叫繼承類裡重構的 使用類轉換,能解決掉,基類指標 呼叫 繼承類 函式的問題。include include include using namespace std class person friend istr...

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

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

繼承 基類和派生類

說明派生類的生成和使用 include using namespace std class test1 基類 test1 int a x a void disp class test2 public test1 派生類 test2 int a,int b test1 a void disp intm...