C 建構函式

2022-08-28 08:15:07 字數 1050 閱讀 6636

一、建構函式

建構函式用於執行類的例項的初始化。每個類都有自己的建構函式,如果我們宣告了建構函式,系統就會執行我們宣告好的建構函式;如果我們沒有宣告建構函式,編譯器就會自動為我們提供乙個預設的建構函式。

在訪問乙個類的時候,系統將首先執行建構函式中的語句。

實際上,執行建構函式時都隱式地呼叫了系統提供的預設建構函式base()。

如果我們在類中宣告了下面的建構函式:

a(...)它等價於:

a(...):base()在使用建構函式時,請注意下面的問題:

?建構函式的名字必須與類同名。

?建構函式可以帶引數,也可以不帶引數,並且沒有返回型別。

?建構函式總是public型別的。如果是private型別的,表示類不能被例項化,一般用於只含有靜態成員的類。

?建構函式主要完成對類的初始化工作,因此,在建構函式中不要做對類的例項進行初始化以外的事情,也不要嘗試顯式地呼叫建構函式。

下面的示例講解了建構函式的使用:

class classtest

public classtest(int x1, int y1)// 帶引數的建構函式classtest(int x1,int y1)

}二、建構函式的引數

建構函式可以不帶引數,不過,有時候我們在對類進行例項化時,需要傳遞一定的資料,來對其中的各種資料進行初始化,這時,我們可以使用帶引數的建構函式,來實現對類的不同例項的不同初始化。

在帶有引數的建構函式中,類在例項化時必須傳遞引數,否則該建構函式不會被執行。

我們在上面宣告了兩個建構函式:不帶引數的建構函式和帶引數的建構函式。

下面討論一下建構函式的引數的傳遞情況:

1. 不帶引數的建構函式的引數傳遞

classtest obj1 = new classtest();

不帶引數的建構函式,不需要傳遞引數。請閱讀c#靜態成員和非靜態成員示例。

2. 帶引數的建構函式的引數傳遞

classtest classtest1 = new classtest("baixue", 18);

帶引數的建構函式,需要傳遞引數。請閱讀c#中類的成員示例。

C 建構函式 拷貝建構函式

建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...

C 構造器(建構函式)

定義和作用 構造器是在構建類的 引用時 自動執行的方法。所以,每個類都必須至少要有乙個構造器。在訪問乙個類的時候,編譯器最先執行構造器中的 它與類同名,帶引數的構造器能夠獲取引數,但是與方法不同的是 構造器雖然也是一種 例項型別 即必須通過例項來進行呼叫,也可以稱之為引用型別 但是卻不能返回任何值 ...

C 建構函式

建構函式是一種特殊的成員函式,它主要用於為物件分配儲存空間,對資料成員進行初始化.1 建構函式的名字必須與類同名 2 建構函式沒有返回型別,它可以帶引數,也可以不帶引數 3 建構函式的主要作用是完成對類的初始化工作 4 在建立乙個類的新物件 使用new關鍵字 時,系統回自動呼叫給類的建構函式初始化新...