如果沒有為類顯式地定義乙個建構函式,則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 位址操作符,如果沒有定...