C 預設建構函式

2021-08-20 19:29:14 字數 704 閱讀 7551

c++ 預設建構函式是對類中的引數提供預設值的建構函式,一般情況下,是乙個沒有引數值的空函式,也可以提供一些的預設值的建構函式,如果使用者沒有定義建構函式,那麼編譯器會給類提供乙個預設的建構函式,但是只要使用者自定義了任意乙個建構函式,那麼編譯器就不會提供預設的建構函式,這種情況下,容易編譯報錯,所以正確的寫法就是使用者在定義建構函式的時候,也需要新增乙個預設的建構函式,這樣就不會造成編譯報錯。

#include 

using

namespace

std;

class point;

point(int x, int y):x(x), y(y)

int gety() const

void move(int newx, int newy)

private:

int x,y;

}; int main()

執行以上**,你就可以看到呼叫預設建構函式和呼叫建構函式的區別。其實一般情況下,我們都可以將預設建構函式寫成我在**中注釋的point(){},方便我們隨時呼叫來建立物件。而我在**中給預設建構函式增加了一句輸出,方便我們看出什麼時候呼叫到它。

我們也可以通過呼叫建構函式來動態建立物件,這時候的main函式這樣寫:

int main()

C 預設建構函式

c 預設建構函式 一直認為若程式設計師沒有自己定義無引數的建構函式,那麼編譯器會自動生成預設建構函式,來進行對成員函式的初始化,但這種認為是有誤的,不全面的.預設的建構函式分為有用的和無用的,所謂無用的預設建構函式就是乙個空函式 什麼操作也不做,而有用的預設建構函式是可以初始化成員的函式。對建構函式...

c 預設建構函式

c 什麼時候合成預設建構函式?c 合成的預設建構函式都做些什麼?以下三個條件同時滿足 源程式中沒有宣告任何建構函式 編譯器需要該類有預設建構函式 程式中需要呼叫預設建構函式 預設建構函式是以編譯單元為單位生成的 什麼時候編譯器需要預設建構函式 該類中有 有預設建構函式 的成員物件 該類繼承乙個有預設...

C 預設建構函式

先說c 新手一般的誤解 1.任何乙個類如果沒有定義預設建構函式,編譯器會自動合成乙個預設建構函式。2.編譯器合成出來的預設建構函式,會顯式的設定類中成員變數的值。先看乙個最基本的例子 從圖中可以看到物件a並沒有被初始化,即編譯器沒有為類a合成乙個預設建構函式。其實c 標準委員會曾敘述,如果沒有任何使...