類的構造與析構函式

2021-08-17 21:18:00 字數 538 閱讀 8085

每個類都有建構函式和析構函式。即使使用者建立的類,系統也會為該類建立預設的建構函式。建構函式不能是虛函式。

在物件導向語言裡,這兩個函式特別重要。物件導向的語言裡,其成員變數和函式都屬於物件(除了靜態全域性變數和靜態函式)。我們知道類不能夠直接在定義時對其成員變數進行初始化,這部分工作一部分統一放到建構函式來完成(靜態成員變數需要在類外進行初始化)。

建構函式沒有返回值,其函式名和類名相同。建構函式可以有多個,構成了過載。建構函式可以有引數,當對類進行例項化時,根據例項化所帶的引數選擇不同的建構函式。

析構函式可以為虛函式,特別是在多型應用時,其基類的建構函式一定要用虛函式。析構函式沒有引數,也無返回值。

當物件被建立時,會呼叫建構函式。建構函式優先呼叫父類建構函式,如果有巢狀定義的成員變數,再呼叫巢狀定義成員變數所屬類的建構函式,最後呼叫本身的建構函式。析構函式與構造函式呼叫順序正好相反。

當用指標時,new和delete分別會呼叫建構函式和析構函式,而malloc和free不會呼叫。

類中的靜態全域性變數和成員函式不會占用物件空間,只有虛函式,成員變數,指標會占用。

類的建構函式與析構

1.把物件的初始化工作放在建構函式中,把清除工作放在析構函式中。當物件被建立時,建構函式被自動執行。當物件消亡時,析構函式被自動執行。這下就不用擔心忘了物件的初始化和清除工作。2.建構函式 析構函式與類同名,由於析構函式的目的與建構函式的相反,就加字首 以示區別。3.建構函式與析構函式都沒有返回值型...

類的建構函式與析構函式

建構函式 對於類物件成員的初始化我們始終是建立成員函式然後手工呼叫該函式對成員進行賦值的,那麼在c 中對於類來說有沒有更方便的方式能夠在物件建立的時候就自動初始化成員變數呢,這一點對操作保護成員是至關重要的,答案是肯定的。關於c 類成員的初始化,有專門的建構函式來進行自動操作而無需要手工呼叫。類建構...

類的建構函式與析構函式

類的建構函式與析構函式 include 所有的類預設都有乙個建構函式,析構函式 建構函式,過載,沒有返回值,class myclass myclass int data 建構函式可以過載 myclass void run void main1 explicit 關鍵字 控制函式不能採用型別轉換 in...