C++ 中解構函式和自由函式的區別是什麼?
在這裡,我們將瞭解 C++ 中解構函式和 free() 函式之間的區別。解構函式用於在物件銷燬之前執行某些操作。此操作可能不會釋放記憶體,但可以執行一些簡單的操作,例如在螢幕上顯示一條訊息。
free() 函式在 C 中使用,在 C++ 中,我們也可以使用 delete 關鍵字來做同樣的事情。當使用 free() 或 delete 刪除物件時,會呼叫解構函式。解構函式不接受任何引數並且不返回任何值。當使用 free 或 delete 或物件超出作用域時,會呼叫此函式。
示例
#include<iostream> #include<cstdlib> using namespace std; class MyClass { public: ~MyClass() { cout << "Destructor of MyClass" << endl; } }; int main() { MyClass *obj; obj = new MyClass(); delete obj; }
輸出
Destructor of MyClass
有時 free() 函式可能不會呼叫解構函式,而是從記憶體中刪除內容。因此,在這裡我們使用 delete 關鍵字代替 free()。
廣告