C++學習之構造函數和析構函數及指針


C++的構造函數在創建對象時調用,分配內存空間,多少個對象(對象數組)就調用幾次構造函數;析構函數在調用結束時調用(可以添加一些最后的處理)以釋放內存給其它來用。對於同類型同生命期的對象,先創建的對象,先調用構造函數,但調用析構函數順序在最后。

構造函數可以有多個(重載),構造函數也可以帶參數(也可以設置默認值(相當於多個重載函數,所以有默認值參數的構造函數就不要在重載多個了否則會出錯))從而可以給不同對象傳遞不同參數,參數的賦值可以在類定義中進行".cpp",也可以在類對象聲明中用列表化傳遞,參數也可以只給類型。

析構函數只有一個不能重載,對象的析構順序和構造順序相反。

對象數組的初始化方法:當構造函數只有一個參數時可以“大括號逗號隔開”,當構造函數參數有多個時可以用“大括號中構造函數(參數列表1),構造函數(參數列表2),,,構造函數(參數列表n)}"

指針:

類對象也可以有指針,用以指向對象的首地址;

類對象的數據成員也可以有指針,和一般類型對象指針沒有什么區別。

類對象的函數成員的數據指針與一般的函數指針不同,聲明方法:返回值類型(類型::*pfun)(參數列表)=&類名::函數(),注意因為類的函數成員是對所有的對象的,所以指針也要指向類的函數而非對象的函數,但調用時要用"對象.*pfun()"

this指針:是隱式的默認傳遞的,所以不同對象調用同類的成員函數時系統能區分調用的是哪個對象的數據成員,當然也可以顯示調用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM