C 學習 建構函式

2022-03-10 07:35:46 字數 811 閱讀 1490

如果沒有為類顯式地定義乙個建構函式,則c#編譯器會自動生成乙個函式體為空的預設無參的例項建構函式。

建構函式主要用於建立類的例項物件。

當呼叫建構函式建立乙個物件時,建構函式會為物件分配記憶體空間,並初始化類的成員。

建構函式分為例項建構函式和靜態建構函式兩種。

例項建構函式用於建立和初始化類的例項。使用new運算子建立物件的過程,其實就是在呼叫例項建構函式,來初始化類中所有例項成員。

例項建構函式可以進行方法過載。實現了方法過載,就可通過不同的方式來完成類的例項化。

可以對例項建構函式指定訪問級別,即可以使用public、protected和private修飾符來修飾。(用public關鍵字修飾的建構函式,稱為公共建構函式;用private關鍵字來修飾例項建構函式,稱為私有建構函式)

然而不是任何乙個函式都可以成為例項建構函式,例項建構函式必須滿足一下兩個條件:建構函式必須和類同名;建構函式不允許有返回型別

如果類只定義乙個或多個私有建構函式,而沒有其他公共建構函式,則其他類不能通過呼叫該類的私有建構函式類建立類的例項。

私有建構函式最典型的應用是設計模式中單例模式的實現。

除了例項建構函式之外,建構函式還包括靜態建構函式。

靜態建構函式用於初始化類中的靜態成員,在建立第乙個例項或引用任何靜態成員之前,clr都將自動呼叫靜態建構函式。

與例項建構函式一樣,要稱為靜態建構函式必須具有以下特點

靜態建構函式不能使用任何訪問修飾符

靜態建構函式不能帶有任何引數

靜態建構函式只會執行一次

不能直接呼叫靜態建構函式

在程式中,程式設計師無法控制執行靜態函式的時機

C 學習 建構函式

成員函式的一種 class complex 編譯器自動生成預設建構函式 complex c1 complex p new complex 上面兩個語句類的預設建構函式均被呼叫class a a a double r,double i a a1 缺少函式引數 a a new a 少參 a a 2 ok...

C 學習 建構函式與複製建構函式

在建構函式的函式頭初始化 includeusing namespace std class rectangle private const int length int width int main void 複製建構函式 預設複製建構函式的機制 includeusing namespace std...

c 學習 複製建構函式

複製建構函式是個非常微妙的函式,如果不能深刻理解它,可是會出現很多莫名奇妙的錯誤,下面通過乙個程式來詳細的介紹其中的奧妙。1 c 中的隱士成員函式 1 預設建構函式,如果沒有定義 2 複製建構函式,如果沒有定義 3 賦值操作符,如果沒有定義 4 預設析構函式,如果沒有定義 5 位址操作符,如果沒有定...