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()。

更新於: 2019年7月30日

490 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告