c 類的建構函式的預設定義和個性化定義

2021-07-24 17:31:29 字數 944 閱讀 1794

預設的,類的建構函式名是和類名是相同的。

初學者可能會有乙個疑問。因為類的定義格式和類的建造格式不一樣。

類的定義:

class classname }

類的建造,實際上,是類的物件的建造:

classname myobject =  new classname();

classname後面怎麼多了個括號呢?是個函式的形式,但是定義的時候,並沒有定義這樣乙個函式呀?這是初學者,也是我在初學的時候的疑問。後來搞懂了。定義了乙個類,則有乙個預設的與類名同名的建構函式,它建造類的物件的成員,然後返回這個物件。我們在建造的時候,呼叫的就是這麼乙個函式。當然,也可以個性化定義這個建構函式。在完成基本類的物件的構造功能的同時,還能完成我們個性化定義的功能。如何體現這個函式是建構函式,與眾不同呢?那就是不能同一般函式的格式。下面就是乙個建構函式

public classname()

看到了嗎,它沒有返回型別!!!一般函式都是要返回型別的,它沒有,它就是這麼特別,因為它是類的建構函式!當然,它的名字要同類的名字。因為,它是類的建構函式!

個性化定義建構函式有乙個好處,就是在類的建立的時候。可以同時做一些工作,可以是一點微小的工作,也可以是大的工作。在下面這個除法類的定義中,個性化定義建構函式之後,就可以在類的物件建造的時候完成除法運算。要注意的是,因為建構函式返回的是物件,因此,不能像一般函式那樣,返回計算的結果資料。可以給除法類定義乙個成員變數,用來儲存這個計算資料結果。

using system;

namespace construtordefinition

}class program",d.result);//訪問物件的成員變數獲得計算結果

console.write("press any key to continue . . . ");

console.readkey(true);}}

}

C 中類的預設建構函式

在 c 中類的合成的預設建構函式2 1 和 c 中類的合成的預設建構函式2 2 中提到,如果類中沒有顯式地定義預設建構函式,則c 編譯器會為其創造乙個合成的預設建構函式,如果類中已經定義了其他格式的建構函式,此時c 編譯器不會再為其合成預設建構函式。而定義類時,最好要定義其預設的建構函式。在c 11...

莫用類的預設建構函式定義變數

類中有個特殊的函式叫 建構函式 如果你沒有在類中定義建構函式,會預設有乙個不帶引數的建構函式 例如 class myclass 下面 與上面效果一樣 class myclass myclass 我們定義乙個myclass物件的時候不能用下面的方式 myclass instance error c p...

C 的預設建構函式

預設建構函式 default constructor 就是不需要帶任何引數的建構函式。預設的建構函式用來建立乙個 原型 vanilla 物件 當編譯器需要建立乙個物件而又不知道任何其他細節時,預設函式會顯得如此重要。如果在類定義的時候,有明確的預設建構函式,則在使用乙個類的時候,可以只做定義,而不需...