C++ Instance的動(dòng)態(tài)創(chuàng)建與銷毀

c++
小樊
90
2024-07-26 14:16:14

在C++中,我們可以使用new關(guān)鍵字來(lái)動(dòng)態(tài)創(chuàng)建對(duì)象的實(shí)例,使用delete關(guān)鍵字來(lái)銷毀對(duì)象的實(shí)例。動(dòng)態(tài)創(chuàng)建對(duì)象的實(shí)例可以在程序運(yùn)行時(shí)根據(jù)需要分配內(nèi)存空間,而銷毀對(duì)象的實(shí)例可以釋放內(nèi)存空間,減少內(nèi)存泄漏的可能性。

例如,我們可以這樣動(dòng)態(tài)創(chuàng)建一個(gè)對(duì)象的實(shí)例:

MyClass *obj = new MyClass();

這會(huì)在堆上分配內(nèi)存空間來(lái)存儲(chǔ)一個(gè)MyClass對(duì)象的實(shí)例,并返回一個(gè)指向該對(duì)象的指針。我們可以使用這個(gè)指針來(lái)訪問(wèn)對(duì)象的成員變量和成員函數(shù)。

當(dāng)我們不再需要這個(gè)對(duì)象的實(shí)例時(shí),我們可以使用delete關(guān)鍵字來(lái)銷毀它:

delete obj;

這會(huì)釋放之前分配的內(nèi)存空間,并將指針obj置為nullptr。需要注意的是,一旦對(duì)象的實(shí)例被銷毀,我們就不能再使用該指針來(lái)訪問(wèn)對(duì)象了,否則會(huì)導(dǎo)致未定義行為。

0