C 之建構函式 引數列表 析構函式

2022-06-17 20:54:11 字數 1346 閱讀 7136

參考自:

兩種例項化方式都是預設建構函式

紅字部分即為初始化列表:乙個引號,多個引數用逗號隔開,賦值用()

初始化列表特性:

其先於建構函式執行

其只能用於建構函式

其可以同時初始化多個資料成員

拷貝建構函式的特點:

當使用者沒有定義建構函式時,編譯器會自動生成乙個預設的拷貝建構函式(建構函式也是如此)

當採用直接初始化或複製初始化例項化物件時,系統會自動呼叫拷貝建構函式

由於拷貝建構函式的特性,拷貝建構函式不能過載!!

【注意】初始化列表是所有建構函式都可以實現的.
【重要知識點】物件的生命歷程

總結:建構函式與析構函式的呼叫順序

1、先執行 被組合物件的建構函式

(1)當類中有成員變數是其他類的物件時,首先呼叫成員變數的建構函式,呼叫順序與宣告順序相同,之後呼叫自身類的建構函式。

(2)析構函式的呼叫順序與對應的構造函式呼叫順序相反。

2、被組合物件的構造順序,預定義順序有關係,與初始化列表的順序沒有關係

3、 特殊成員變數必須用引數列表初始化。const、&、物件。

4、static型別的成員變數,必須在類外初始化,且不帶static關鍵字。

注意:建構函式中不要呼叫建構函式!!這是一種危險的行為!(匿名物件深究)

#include#include

using

namespace

std;

class

point

point(

int a, int

b)

~point()

intgetc()

private

:

inta;

intb;

intc;

};int

run()

intmain()

C 建構函式 析構函式 虛析構函式

一般地,建立物件和刪除物件時,父類建構函式 子類建構函式 子類析構函式 父類析構函式。特例 如果用new建立了乙個物件,並將父類的指標指向這個子類的物件,那麼用delete撤銷物件時,系統只執行基類的析構函式,而不執行派生類的析構函式。如果希望按照子類析構函式 父類析構函式的順序執行,那麼應該將基類...

C 建構函式,析構函式

一 建構函式 在建立類的物件時自動呼叫的乙個函式,主要是為物件本身做初始化工作 沒有返回值,名字和類的名字相同,因為是在建立物件時候自動呼叫的,所以必須型別為public的,可以帶引數,可以有多個 如果類中沒有建構函式,在下面三種情況下,會自動的新增預設的建構函式 1.如果類中有虛函式,或者類中有虛...

C 建構函式 析構函式

在學習類的成員方法時,遇到了兩個函式。簡單介紹一下 一 建構函式 建構函式是類中比較特殊的成員函式,它也是一種方法。主要用來為物件分配儲存空間,完成初始化操作,例如給類的成員變數賦值等。一般來說,建構函式一旦開始執行,那麼物件的生命週期就開始了,最終它將以析構函式結束。如果乙個類含有建構函式,在例項...