建構函式與析構函式

2021-08-08 11:56:47 字數 686 閱讀 3549

某些類的物件,必須在對它進行了初始化以後才能使用。對於某些類的物件在消亡前,往往也需要執行一些操作,做一些善後的處理。初始化和掃尾的工作給類的使用者帶來了額外的負擔,使他們覺得類和內建型別還是不一樣。

使用者希望使用類的物件就和使用內建型別的變數一樣,一旦定義了,就能直接使用。用完了,由系統自動**。

建構函式和析構函式是特殊的成員函式

建構函式:為物件賦初值。

析構函式:執行與建構函式相反的操作,通常執行一些清理工作,如釋放分配給物件的動態空間等。

說明定義物件時,如何為物件賦初值

由系統在定義物件時自動呼叫

如果沒有給類定義建構函式,編譯系統會自動生成乙個預設的建構函式。它只為物件開闢儲存空間,空間中的內容為隨機數。

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

建構函式可以有任意型別的引數,也可以不帶引數,但不能具有返回型別。因此在定義建構函式時,不能說明它的型別,甚至說明為void型別也不行。

建構函式可以過載

析構函式在撤銷物件時,完成一些善後工作,由編譯系統自動呼叫.

析構函式與建構函式名字相同,但它前面必須加乙個波浪號(~).

析構函式沒有引數,沒有返回值,也不能過載。

若定義類時沒有定義析構函式,編譯系統會自動生成乙個預設的空析構函式.

並不是每個類都必須要有析構函式。

一般在建構函式中有動態申請記憶體的,必須有析構函式。

建構函式與析構函式

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

建構函式與析構函式

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

建構函式與析構函式

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