C 的建構函式和析構函式

2021-09-30 02:00:58 字數 1192 閱讀 4457

類的建構函式是在生成類的物件時自動呼叫的,它用來初始化物件的資料成員。類的析構函式是以類名前加上「

~」為函式名的函式,它在刪除物件時自動呼叫,即程式執行離開初始化類物件的範圍時呼叫。析構函式本身並不實際刪除物件,而是進行系統放棄記憶體之前的清理工作,使記憶體可以用於儲存新的物件。

建構函式與析構函式是自動呼叫的,他們的呼叫順序取決於執行過程進入和離開物件的順序。我們來舉個具體例子,來說明他們的呼叫順序。

#ifndef create_h

#define create_h

class createanddestroy;

#endif

#include

#include」create.h」

createanddestroy::createanddestroy(int value)

createanddestroy::~createanddestroy()

#include

#include」create.h」

void create(void);

createanddestroy first(1);//

全域性物件

int main()

void create(void)

物件fourth

和second

的析構函式在到達

main

結尾時一次呼叫。由於

third

是static

區域性物件,因此到程式結束時才退出,在程式終止時刪除所有其他物件之後和呼叫

first

的析構函式之前呼叫物件

third

的析構函式。函式

create

宣告三個物件。物件

fifth

和seventh

是區域性自動物件,物件

sixth

是static

區域性物件。物件

seventh

和fifth

的析構函式在到達

create

結尾時自動呼叫。由於物件

sixth

是static

區域性物件,因此到程式結束時才退出。

sixth

的析構函式在程式終止時刪除所有其他物件之後和呼叫

third

和first

的新構函式之前呼叫。

C 建構函式和析構函式

1.建構函式是類的一種特殊方法,每次建立類的例項都會呼叫它。在建立乙個類的例項時,建構函式就像乙個方法一樣被呼叫,但不返回值。語法格式 訪問修飾符 類名 特性 1 其名字必須與類名相同,例如 public class myclass 2 不能被直接呼叫,必須通過new運算子來 呼叫。publiccl...

C 建構函式和析構函式

建構函式 class rectangel rectangel int l,int w 這是帶引數的建構函式,建構函式都是沒有返回值,並且和該類同名 int area 這是另一種形式的內聯函式,把宣告和定義寫在一起的也是內聯函式 private int length int width 析構函式 cl...

c 建構函式和析構函式

1.c 的建構函式有預設建構函式,一般的建構函式,賦值建構函式,拷貝建構函式 複製建構函式 強制型別轉化建構函式。2.如果沒有定義建構函式和析構函式,則c 編譯器會按照 位拷貝 的方式提供預設的建構函式 不初始化 預設的賦值建構函式 淺賦值 預設的拷貝建構函式 淺拷貝 預設的析構函式。位拷貝要小心指...