C++類的析構函數
構造函數和析構函數是類體定義中比較特殊的兩個成員函數
構造函數的學習:——————》C++類的構造函數
本文主要介紹構造函數析構函數異同以及析構函數使用方法。
相同點:
兩者都沒有返回值,不使用return語句,也不需要關鍵字void。
不同點:
1、構造函數主要是用來在對象創建時,給對象中的一些數據成員賦值,主要目的計數來初始化對象。
2、析構函數的功能是用來釋放一個對象的,在對象刪除前,用它來做一些清理工作。
3、構造函數名標識符和類名標識符相同,析構函數名標識符就是類名標識符前加"~"符號。
析構函數使用方法:
class CPerson{
public:
~CPerson(){
delete M;
}
char M[30];
};
構造函數析構函數的入門應用源代碼:
#include<iostream>
#include<string.h>
using namespace std;
class CPerson{
public:
CPerson(){
strcpy(M,"Hello World\0");
}
~CPerson(){
delete M;
}
char M[30];
show(){
cout<<M<<endl;
}
};
int main(){
CPerson p1;
p1.show();
}
結果圖:
tips:對於以下的注意事項和調用環境,你要是心情好就看看,不想看就算了,其實沒什麼卵用。
使用析構函數的注意事項:
1、一個類中只可能定義一個析構函數。
2、析構函數不能重載。
構造函數析構函數的調用環境:
1、自動變量的作用域是某個模塊,當此模塊被激活時,自動變量調用構造函數,當退出此模塊時,調用析構函數。
2、全局變量在進入main函數之前會調用析構函數,在程序終止時會調用析構函數。
3、動態分配的對象在使用new爲對象分配內存時會調用構造函數,使用delete刪除對象時會調用析構函數。
4、臨時變量是爲支持計算,由編譯器自動產生的。臨時變量的生存期的開始和結尾會調用構造函數和析構函數。