C 建構函式小記

2021-10-22 22:50:36 字數 1702 閱讀 7129

每乙個類建立物件的時候,此時會呼叫建構函式對類內的成員進行初始化。

下面的test()即為類test的乙個建構函式

class

test

;

與類的名稱相同

類中沒有指定宣告建構函式,編譯器會自動生成

沒有返回值

可以過載

宣告兩個建構函式

#include

using

namespace std;

class

test

test

(int i)

:data

(i)private

:int data;};

intmain()

不能被派生類繼承

建立派生類物件前,會先呼叫base建構函式,再呼叫derive建構函式

#include

using

namespace std;

class

base

base

(int i)

:data

(i)private

:int data;};

class

derive

:public base};

intmain()

static關鍵字不能用於建構函式

編譯以下**報錯:constructor cannot be static member function

#include

using

namespace std;

class

test

;int

main()

virtual關鍵字不鞥你用於建構函式

編譯以下**報錯:constructors cannot be declared 『virtual』

#include

using

namespace std;

class

test

;int

main()

explicit關鍵字可以修飾建構函式

避免類的物件被隱式轉換,在test(int i)前面增加explicit,a=1編譯時就會報錯,不能隱式轉換1為test物件。若需要轉換只能顯示的強制轉換。

#include

using

namespace std;

class

test

private

:int data;};

intmain()

#include

using

namespace std;

class

test

private

:int data;};

intmain()

C 預設建構函式小記

include include using namespace std class a a private string name int main 上面這段 執行的時候會報錯,是什麼錯?應該怎麼修改?答 是由於a沒有預設建構函式而報錯,在執行到map 1 處,會呼叫a的預設建構函式來構造乙個a物件...

建構函式 原型物件小記

object是建構函式,而object.prototype是建構函式的原型物件。建構函式自身的屬性和方法無法被共享,而原型物件的屬性和方法可以被所有例項物件所共享。首先,建構函式是生成物件的模板,乙個建構函式可以生成多個物件,每個物件都有相同的結構。建構函式的缺點就是每當例項化兩個物件時,需要呼叫兩...

C 學習小記之建構函式和析構函式

物件的初始化和清理是非常重要的安全問題 建構函式 建立物件時為物件的成員屬性賦值,建構函式由編譯器自動呼叫,無需手動呼叫 析構函式 物件銷毀前自動呼叫,執行一些清理工作 當我們不提供構造和析構時,編譯器會提供,而編譯器提供的時空實現的 建構函式語法 類名 無返回值也不寫void 函式名稱與類名相同 ...