C 建構函式,析構函式

2021-08-10 20:29:15 字數 2037 閱讀 1239

1、結構體和類唯一的區別,結構體預設的訪問型別是public,而類的是private。

2、定義位於類宣告中的函式將自動成為內聯函式。通常定義比較短的函式這麼做。也可以在類外部宣告為內聯函式。

- 內聯函式的規則特殊,要求每個使用它的檔案中都有對應定義。最好的方法是和類宣告一起放在標頭檔案中。

inline

void stock::set_tot()

建構函式和類同名,沒有返回值,在類宣告物件時候,將會自動呼叫建構函式。

- 以上是3種物件的初始化方式,從實驗結果看,確實自動呼叫了建構函式。這裡有個注意點,建構函式雖然沒有返回值,但是也要寫成public的,不然會顯示沒有匹配的建構函式。

- 無法通過物件的成員呼叫建構函式。因為建構函式的使用是在物件生成之前的,在建構函式構造出物件前,物件是不存在的。通過使用物件.成員的方式,也會發現不會出現建構函式。

預設建構函式

- 從結果中可以看出,析構函式呼叫的順序和建構函式相反,後構造的函式先析構。

- 使用student bb = student(20, 「man」, 「bb」);的方式定義物件,實際上是先生成乙個臨時的物件,然後賦值給bb,為了驗證這個想法,看下面**。

- 從結果看確實是兩個物件存在不同位址,臨時物件賦值後就消亡。賦值過程不會呼叫建構函式。

而在c++ primer plus書中也有相應的說明 p361

stock stock2=stock("bpffo object ", 2,2.0);

stock1=stock("nifty foods", 10,50.0);

列表初始化

用如下的方式初始化變數:c++11特性

student s1=;

student s2;

student s3{};

const成員函式
class student

// 或者

static

const

int months=12;

double costs[months];

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

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

C 建構函式,析構函式

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

C 建構函式 析構函式

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