在C++中,delete
關(guān)鍵字用于釋放動態(tài)分配的內(nèi)存
delete
關(guān)鍵字的主要作用是:
釋放內(nèi)存:當你使用new
關(guān)鍵字動態(tài)分配內(nèi)存時,delete
用于釋放這些內(nèi)存。這對于防止內(nèi)存泄漏(memory leaks)非常重要,因為內(nèi)存泄漏會導致程序占用越來越多的系統(tǒng)資源,最終可能導致系統(tǒng)崩潰。
調(diào)用析構(gòu)函數(shù):在釋放內(nèi)存之前,delete
會自動調(diào)用對象的析構(gòu)函數(shù)。析構(gòu)函數(shù)用于執(zhí)行清理操作,例如釋放其他動態(tài)分配的資源、關(guān)閉文件等。
以下是一個簡單的示例,說明如何使用new
和delete
:
#include<iostream>
class MyClass {
public:
MyClass() {
std::cout << "Constructor called."<< std::endl;
}
~MyClass() {
std::cout << "Destructor called."<< std::endl;
}
};
int main() {
MyClass* obj = new MyClass(); // 使用new關(guān)鍵字動態(tài)分配內(nèi)存并調(diào)用構(gòu)造函數(shù)
delete obj; // 使用delete關(guān)鍵字釋放內(nèi)存并調(diào)用析構(gòu)函數(shù)
return 0;
}
在這個示例中,我們創(chuàng)建了一個名為MyClass
的類,并使用new
關(guān)鍵字動態(tài)分配內(nèi)存。然后,我們使用delete
關(guān)鍵字釋放內(nèi)存。注意,在釋放內(nèi)存之前,delete
會自動調(diào)用MyClass
的析構(gòu)函數(shù)。