c++中構造函數及析構函數特性

一、在c++中,關於構造函數有以下幾點說明:

1、構造函數最重要的作用是創建對象本身。

2、c++規定,每個類必須有一個構造函數,沒有構造函數,則無法創建對象。

3、c++規定,如果一個類沒有提供任何的構造函數,那麼c++編譯器會提供一個默認的構造函數,且這個默認的構造函數是不帶參數的構造函數,它只負責對象的創建,不能進行對象的初始化。

4、只要一個類定義了一個構造函數,不管這個構造函數是否是帶參數的構造函數,c++就不再提供任何的構造函數。

5、在main函數中定義類對象時,會自動調用類裏的構造函數。

6、構造函數沒有返回值,用的是類名。構造函數進行內存的分配。構造函數是用來給系統調用的。

7、在一個類中可以有兩個及以上的構造函數,也可以定義兩個相同名字的構造函數,一個不帶參數,一個帶參數,這叫做函數的重載。函數的重載不止可以用於構造函數中,也可以在普通的函數之間發生。在main函數中聲明類對象時,編譯的時候c++會依據傳遞的參數來進行選擇依靠哪一個構造函數進行初始化。


二、關於析構函數,有以下幾點說明

1、當一個對象生命週期結束的時候,該對象佔用的內存空間就要被收回,這個就是析構函數的工作。即析構函數是用來進行內存的釋放。

2、析構函數是“反向”的構造函數,析構函數不允許有返回值,析構函數不允許帶參數,並且一個類中只能有一個析構函數。

3、析構函數的作用正好與構造函數相反,對象超出其作用範圍,對應的內存空間被系統收回或被程序用delete刪除時,析構函數被調用。

4、根據析構函數的特點,可以在構造函數中初始化對象的某些成員變量,給其分配內存空間(堆內存),在析構函數中釋放對象運行期間所申請的資源。

5、

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章