共用方式為


解構函式 (C++)

"解構函式 」 功能是建構函式的反函數值。 呼叫會終結物件時 (解除配置)。 指定為類別的解構函式的函式,藉由前方的類別名稱,以波狀符號 (~)。 比方說,類別解構函式String宣告: ~String()。

在 /clr 編譯時,解構函式都有特殊的角色,在釋放 managed 和 unmanaged 的資源。 如需詳細資訊,請參閱 解構函式和在 Visual C++ 的完成項

範例

當不再需要物件時,解構函式通常會用來 「 清理 」。 請參考下列宣告的String類別:

// spec1_destructors.cpp
#include <string.h>

class String {
public:
   String( char *ch );  // Declare constructor
   ~String();           //  and destructor.
private:
   char    *_text;
   size_t  sizeOfText;
};

// Define the constructor.
String::String( char *ch ) {
   sizeOfText = strlen( ch ) + 1;

   // Dynamically allocate the correct amount of memory.
   _text = new char[ sizeOfText ];

   // If the allocation succeeds, copy the initialization string.
   if( _text )
      strcpy_s( _text, sizeOfText, ch );
}

// Define the destructor.
String::~String() {
   // Deallocate the memory that was previously reserved
   //  for this string.
   if (_text)
      delete[] _text;
}

int main() {
   String str("The piper in the glen...");
}

在上述範例中,解構函式String::~String會使用delete運算子來解除配置文字的儲存動態配置的空間。

請參閱

參考

特殊成員函式 (C++)