建構函式與析構函式

2021-08-03 04:35:54 字數 669 閱讀 2984

建構函式:

什麼是建構函式?通俗的講,在類中,函式名和類名相同的函式稱為建構函式。它的作用是在建立乙個物件時,作某些初始化的工作(例如對資料賦予初值)。c++允許同名函式,也就允許在乙個類中有多個建構函式。如果乙個都沒有,編譯器將為該類產生乙個預設的建構函式。

建構函式上惟一的語法限制是它不能指定返回型別,甚至void 也不行。

不帶引數的建構函式:一般形式為 類名 物件名()

帶引數的建構函式:不帶引數的建構函式,只能以固定不變的值初始化物件。帶引數建構函式的初始化要靈活的多,通過傳遞給建構函式的引數,可以賦予物件不同的初始值。一般形式為:建構函式名(形參表);

建立物件使用時:類名 物件名(實參表);

構造函式引數的初始值:建構函式的引數可以有預設值。當定義物件時,如果不給出引數,就自動把相應的預設引數值賦給物件。一般形式為:

建構函式名(引數=預設值,引數=預設值,……);

析構函式:

當乙個類的物件離開作用域時,析構函式將被呼叫(系統自動呼叫)。析構函式的名字和類名一樣,不過要在前面加上 ~ 。對乙個類來說,只能允許乙個析構函式,析構函式不能有引數,並且也沒有返回值。析構函式的作用是完成乙個清理工作,如釋放從堆中分配的記憶體。

乙個類中可以有多個建構函式,但析構函式只能有乙個。物件被析構的順序,與其建立時的順序相反,即後構造的物件先析構。

建構函式與析構函式

建構函式 主要作用就是為物件初始化。有一點要說的是,在繼承體系彙總,如果在建構函式中,如果沒有指定基類的建構函式,那麼編譯器會在建構函式開頭加入,基類的預設建構函式,這樣就可以初始化基類物件部分 析構函式 對於析構函式,要說的多點,實際也不太複雜,就是加入了virtual 使其具有了多型性質 inc...

建構函式與析構函式

建構函式 先看看建構函式的呼叫順序規則,只要我們在平時程式設計的時候遵守這種約定,任何關於建構函式的呼叫問題都能解決 建構函式的呼叫順序總是如下 1.基類建構函式。如果有多個基類,則建構函式的呼叫順序是某類在類派生表中出現的順序,而不是它們在成員初始化表中的順序。2.成員類物件建構函式。如果有多個成...

建構函式與析構函式

概述 乙個類有兩種特殊的成員函式 建構函式與析構函式。建構函式功能是在建立物件時,給資料成員賦初值,即物件的初始化。析構函式的功能是釋放乙個物件,在物件刪除前,用它做一些記憶體釋放工作,與建構函式的功能相反。建構函式 在物件建立時它會被自動執行,因此變數 物件的初始化 一般都放在建構函式中。1 物件...