C C 筆記 之建構函式,析構函式

2021-08-24 17:48:08 字數 656 閱讀 1467

構造方法用來初始化類的物件,與父類的其它成員不同,它不能被子類繼承(子類可以繼承父類所有的成員變數和成員方法,但不繼承父類的構造方法)。因此,在建立子類物件時,為了初始化從父類繼承來的資料成員,系統需要呼叫其父類的構造方法。 

如果沒有顯式的建構函式,編譯器會給乙個預設的建構函式,並且該預設的建構函式僅僅在沒有顯式地宣告建構函式情況下建立。

構造原則如下:

1. 如果子類沒有定義構造方法,則呼叫父類的無引數的構造方法。

2. 如果子類定義了構造方法,不論是無引數還是帶引數,在建立子類的物件的時候,首先執行父類無引數的構造方法,然後執行自己的構造方法。

3. 在建立子類物件時候,如果子類的建構函式沒有顯示呼叫父類的建構函式,則會呼叫父類的預設無參建構函式。

4. 在建立子類物件時候,如果子類的建構函式沒有顯示呼叫父類的建構函式且父類自己提供了無參建構函式,則會呼叫父類自己的無參建構函式。

5. 在建立子類物件時候,如果子類的建構函式沒有顯示呼叫父類的建構函式且父類只定義了自己的有參建構函式,則會出錯(如果父類只有有引數的構造方法,則子類必須顯示呼叫此帶參構造方法)。

6. 如果子類呼叫父類帶引數的構造方法,需要用初始化父類成員物件的方式

析構函式與建構函式相反,它是用於物件delete時釋放資源,不會被子類繼承,只是在子類的析構函式中會呼叫父類的析構函式。

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

說析構函式之前,先說下建構函式。建構函式用來完成對物件的一系列初始化操作,主要作用有 1.給建立的物件建立乙個識別符號 2.為物件資料成員開闢記憶體空間 3.完成物件資料成員的初始化 當並未顯示的定義建構函式時,會生成乙個預設的建構函式,預設建構函式不能完成物件資料成員的初始化,只能給物件建立一識別...

建構函式 析構函式

是在物件被建立時自動呼叫的函式,將物件初始化為乙個特定的狀態 建構函式的形式 c 11中可以用clock default 來生成預設建構函式 是指類的物件在建立的時候,能使用已有的物件之間初始化它。或者是在類的物件在作為函式形參的時候,或者類的物件在作為函式返回值的時候 作為複製的機制需要自動拷貝型...

析構函式 建構函式

建構函式 一般用於物件的初始化 函式原型 例宣告乙個cperson類 成員變數即成員方法的宣告暫且不加,下同 則其預設生成建構函式原型為 cperson 即必須與類名相同 建構函式特點及使用法則 特點 1.建構函式無返回值 2.函式可以過載 使用者可以自行更改建構函式中的引數,以實現自定義的初始化形...