構(gòu)造函數(shù)
和類名相同,可以帶參數(shù),參數(shù)可以有多個(gè)
定義對(duì)象時(shí),自動(dòng)調(diào)用,構(gòu)造完成了,對(duì)象就產(chǎn)生了
構(gòu)造函數(shù)執(zhí)行完成后,內(nèi)存開辟完成,同時(shí)可以完成初始化工作.
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、蘭溪ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的蘭溪網(wǎng)站制作公司
析構(gòu)函數(shù)
~Test();
析構(gòu)函數(shù)可以自己調(diào)用,不帶參數(shù),只有一個(gè)析構(gòu)函數(shù),析構(gòu)函數(shù)調(diào)用后,對(duì)象不存在了.自己調(diào)了析構(gòu)函數(shù)后,就不能在調(diào)用對(duì)象的方法了.不建議自己調(diào)用析構(gòu)函數(shù)
示例代碼1:
class student{
private:
int age;
char NAME[20];
};
student s1
int main(){
student s2;
student *ps3=new student();
}
上面的代碼 s2數(shù)據(jù)位置在棧上, ps3指向?qū)ο笤诙焉? s1在數(shù)據(jù)區(qū) .data
s2在棧上,main 函數(shù)執(zhí)行完成后,會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù), 而ps3在堆上,必須自己手動(dòng)的 delete ps3,
delete ps3實(shí)際上包含兩個(gè)動(dòng)作,第1個(gè)是調(diào)用這個(gè)對(duì)象的的析構(gòu)函數(shù),第2個(gè)是釋放內(nèi)存即 free(ps3);
s1是全局變量,在.data 區(qū),程序結(jié)束后才自動(dòng)析構(gòu)
.data 段的對(duì)象在程序啟動(dòng)的時(shí)候構(gòu)造,程序結(jié)束是析構(gòu)
Heap的對(duì)象new的時(shí)候構(gòu)造,delete的時(shí)候析構(gòu)
Stack 對(duì)象,在定義的時(shí)候構(gòu)造,出了函數(shù)析構(gòu)