C 高階程式設計學習筆記 建構函式

2021-04-13 02:53:38 字數 909 閱讀 5306

學習建構函式的筆記:flashlove2008

建構函式大體上分為靜態建構函式和例項建構函式,例項建構函式當然就是在例項化類的時候執行,理解起來比較簡單,而靜態建構函式有些特別:

靜態建構函式只執行一次,在c#中

,靜態建構函式一般在第一次呼叫類的成員之前執行

.編寫類的靜態建構函式的乙個原因是

,類有一些靜態欄位或屬性

,需要在第一次使用類之前

,從外部源中初始化這些靜態欄位或屬性

..net

執行庫沒有確保靜態建構函式什麼時候執行

,但至多執行一次 

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

,沒有訪問修飾符,其他c#**從來不呼叫它 總是由c#執行庫呼叫,所以修飾符沒有任何意義,,乙個類只能有乙個靜態建構函式,

靜態建構函式只能訪問類的靜態成員,不能訪問例項成員

如果提供了帶引數的建構函式,編譯器不會自動提供預設的建構函式,只有在沒有定義任何建構函式時,編譯器才會提供預設的建構函式。

靜態建構函式在載入類時執行,而例項建構函式在建立類的例項時執行,所以可以在類中安全共存,即使引數列表相同 

(2)從其他建構函式中呼叫建構函式

有時候在乙個類中有幾個建構函式,以容納某些可選引數,這些建構函式包含了一些公同**,例:

class

car 

class

car 

...public

car(

string

model) :

this

(model,4)

...}

上面的this關鍵字僅僅呼叫引數最匹配的那個建構函式,這裡要注意:構造初始化器在建構函式之前執行!!!

假定執行下面**:

car mycar=new car("proton persona");

C 高階程式設計學習筆記 建構函式 1

posted on 2007 04 19 10 57 microbar 閱讀 911 編輯收藏 引用 網摘 所屬分類 asp.net c 靜態建構函式是c 的乙個新特性,其實好像很少用到。不過當我們想初始化一些靜態變數的時候就需要用到它了。這個建構函式是屬於類的,而不是屬於 例項的,就是說這個建構函...

C 學習筆記 建構函式

在建立某個類的物件時,由於對該物件的狀態 資料 不很明確,因此需要對其進行初始化。例如,我們要在長方形中建立乙個物件,或者說新建乙個長方形,那麼我們首先要確定它的長和寬,假如我們無法確定它的長和寬,那麼我們是無法構造出乙個長方形來的。例如,我們要構造乙個長方形,由於建構函式要在建立新物件時使用,因此...

C 高階程式設計學習筆記(1

1 在c 中,陣列是引用型別。c 的陣列型別比較靈活,可以在宣告陣列時不進行初始化,這樣以後就可以動態地 指定其大小。利用這種技術,可以建立乙個空引用,以後再使用new關鍵字把這個引用指向請求動態分配的記憶體位置。例如 int integers integers new int 32 同時,在c和c...