C 建構函式疑問點總結

2021-09-05 13:05:56 字數 773 閱讀 1956

前言

在學習c#的過程中,建構函式中的很多知識細節我感覺還是有必要總結一下的。

問題總結

一、建構函式的作用是什麼?

建構函式的主要作用是在建立物件(宣告物件)時初始化物件,乙個類被定義時至少要有乙個建構函式,如果定義類時沒有宣告建構函式,則系統會提供乙個預設的無參建構函式。

二、如何理解「子類不繼承父類的建構函式,但子類預設呼叫父類的建構函式」?

在這裡我們用**來為大家呈現:

這裡執行完畢後的結果為:

所以我們從結果上可知,在例項化子類student時,先是呼叫了父類的建構函式,然後再呼叫了子類的建構函式。這就是「子類不繼承父類的建構函式」的意思。而「子類不繼承父類的建構函式」指的是子類的建構函式與父類的建構函式之間沒有「重寫」和「覆蓋」關係;只有「呼叫」關係,也就是例項化子類時先呼叫父類的建構函式,再呼叫子類的建構函式。也因為是呼叫關係,而且是預設建構函式,預設呼叫父類建構函式,我們可以理解為:public person()==public student():base()

三、為什麼在例項化子類時,子類要先呼叫父類再呼叫子類

因為子類繼承了父類,要想例項化子類,則必須先構造出父類,這樣才能構造出子類,才能例項化。

c 關於拷貝建構函式的疑問

有一些博文提到,c 中的預設拷貝建構函式都是淺拷貝,即是通過該函式拷貝的物件只複製了原物件的指標 但我在qt上用以下 測試時,得到如下結果 include class a using namespace std int main int argc,char ar using namespace st...

C 建構函式總結

c 建構函式的知識在各種c 教材上已有介紹,不過初學者往往不太注意觀察和總結其中各種建構函式的特點和用法,故在此我根據自己的c 程式設計經驗總結了一下c 中各種建構函式的特點,並附上例子,希望對初學者有所幫助。c 類的建構函式詳解 一 建構函式是幹什麼的 class counter private ...

C 建構函式總結

c 提供了建構函式來處理物件的初始化。建構函式是一種特殊的成員函式,與其他成員函式不同,建構函式不需要使用者來呼叫它,而是建立物件時自動執行。建構函式的名字必須與類名相同,建構函式不具有任何型別,不返回任何值 與void型別不同,不是返回空,而是沒有返回值 include using namespa...