解構函式 (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運算子來解除配置文字的儲存動態配置的空間。