析構(gòu)函數(shù)
1.概念
與構(gòu)造函數(shù)功能相反,在對象被銷毀時,由編譯器自動調(diào)用,完成類的一些資源清理和汕尾工作。
2.特性
析構(gòu)函數(shù)在類名(即構(gòu)造函數(shù)名)加上字符~。
析構(gòu)函數(shù)無參數(shù)無返回值。
一個類有且只有一個析構(gòu)函數(shù)。若未顯示定義,系統(tǒng)會自動生成缺省的析構(gòu)函數(shù)。
對象生命周期結(jié)束時,C++編譯系統(tǒng)系統(tǒng)自動調(diào)用析構(gòu)函數(shù)。
注意析構(gòu)函數(shù)體內(nèi)并不是刪除對象,而是做一些清理工作。
四、賦值運算符重載
1.概念
對于類類型的對象我們需要對‘=’重載,以完成類類型對象之間的賦值。
2.static成員
聲明為static的類成員(成員數(shù)據(jù)或成員函數(shù))稱為類的靜態(tài)成員。
特性:
(1)靜態(tài)成員為所有類對象所共享,不屬于某個具體的實例。
(2)類靜態(tài)成員即可用類名::靜態(tài)成員或者對象。靜態(tài)成員來訪問。
(3)類靜態(tài)成員變量必須在類外定義,定義時不添加static關(guān)鍵字。
(4)類的靜態(tài)成員函數(shù)沒有默認(rèn)的this指針,因此在它里面不能使用任何非靜態(tài)成員。
(5)靜態(tài)成員和類的普通成員一樣,也有public、protected、private3種訪問級別,也可以具有返回值,const修飾符等參數(shù)。
注意:
(1)靜態(tài)成員函數(shù)不可以調(diào)用非靜態(tài)成員函數(shù);
(2)非靜態(tài)的成員函數(shù)可以調(diào)用靜態(tài)的成員函數(shù)。
3.const修飾類成員
使用場景:
(1)const修飾形參,一般和引用同時使用;
(2)const修飾返回值;
(3)const修飾類數(shù)據(jù)成員,必須在構(gòu)造函數(shù)的初始化列表中初始化;
(4)const修飾類成員函數(shù),實際修飾隱含的this,表示在類中不可以對類的任何成員進(jìn)行修改;
(5)在const修飾的成員函數(shù)中要對類的某個數(shù)據(jù)成員進(jìn)行修改,該數(shù)據(jù)成員定義聲明是必須加mutable關(guān)鍵字。
說明:
const對象不可以調(diào)用非const成員函數(shù),非const成員函數(shù)可以調(diào)用const成員函數(shù)
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64904 -
C++
+關(guān)注
關(guān)注
22文章
2119瀏覽量
75330
發(fā)布評論請先 登錄

C++零基礎(chǔ)教程之C++析構(gòu)函數(shù),輕松上手C++析構(gòu)函數(shù)
C++標(biāo)準(zhǔn)編程:虛函數(shù)與內(nèi)聯(lián)
如何把C++的源程序改寫成C語言
如何把C++的源程序改寫成C語言
如何把C++的源程序改寫成C語言
如何把C++的源程序改寫成C語言
如何把C++的源程序改寫成C語言
C++中的四種類型轉(zhuǎn)換分別是哪些?C++中析構(gòu)函數(shù)的作用是什么
C++的123個經(jīng)典筆試題目合集免費下載

Linux共享庫的構(gòu)造函數(shù)和析構(gòu)函數(shù)

C++之繼承中構(gòu)造和析構(gòu)學(xué)習(xí)的總結(jié)
深度解析C++中的虛函數(shù)

評論