寫(xiě)在前面
有構(gòu)造函數(shù),就有析構(gòu)函數(shù)
名詞解釋
析構(gòu)函數(shù),對(duì)象銷毀(內(nèi)存被回收)的時(shí)候調(diào)用 eg:~Person() 就是在構(gòu)造函數(shù)上加個(gè)“~”,就變成了析構(gòu)函數(shù)。
說(shuō)來(lái)慚愧
原來(lái)Xcode直接可以創(chuàng)建C++ 的命名行工具结榄,不用更改文件的后綴名
碼上建功
class Person {
public:
// 對(duì)象創(chuàng)建完畢的時(shí)候調(diào)用
Person() {
cout << "初始化--Person()" << endl;
}
// 對(duì)象銷毀(內(nèi)存被回收)的時(shí)候調(diào)用
~Person() {
cout << "析構(gòu)~~Person()" << endl;
}
};
int main() {
Person person;
getchar();
return 0;
}
說(shuō)下這個(gè)函數(shù)getchar(),用于接收鍵盤(pán)的輸入囤捻,當(dāng)點(diǎn)擊enter鍵時(shí)臼朗,鍵盤(pán)輸入結(jié)束,程序繼續(xù)執(zhí)行蝎土,
當(dāng)運(yùn)行完程序時(shí)依溯,log打印為
初始化--Person()
點(diǎn)擊enter鍵,程序運(yùn)行結(jié)束
log打印結(jié)果:
初始化--Person()
析構(gòu)~~Person()
Program ended with exit code: 0
裝逼一下
int main() {
Person *p = new Person();
delete p;
getchar();
return 0;
}
用new初始化瘟则,調(diào)用構(gòu)造函數(shù)黎炉,調(diào)用delete,調(diào)用析構(gòu)函數(shù)
初始化--Person()
析構(gòu)~~Person()
Person *p = (Person *) malloc(sizeof(Person));
free(p);
調(diào)用以上方法不會(huì)調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)醋拧,全部由系統(tǒng)方法搞定
完整代碼demo慷嗜,請(qǐng)移步GitHub:DDGLearningCpp
當(dāng)然C++大神就繞吧,非喜勿噴丹壕,畢竟這是個(gè)人的學(xué)習(xí)筆記??