解構子

解構子(英語:Destructor,有時簡稱 dtor)在面向对象程序设计裡是一個方法,當对象的生命週期結束時,它會自動地被呼叫執行。它最主要的目的在於,清空並釋放物件先前建立或是佔用的記憶體資源。解構子的整體使用概念關鍵在於RAII。一個具備垃圾回收機制的程式語言,無法確保解構子是否會被執行,通常這類的程式語言不屬於RAII的範圍內。這類的程式語言,只要經由某個適當的函式,通常會呼叫Dispose()函式,做呼叫的動作,那麼它一定會從現有資源釋放物件。與使用垃圾回收機制的Finalize()相比,建議使用解構子是釋放資源的適當做法[註 1]

代码示例

[编辑]
class Demo{ public:     ~Demo()                     //定义析构函数     {        std::cout << "调用了析构函数 " << std::endl;     } };  int main() {    {       Demo demo ;       }               // 在部分开发环境中可能没有显示内容,把它放在块儿中即可     return 0;   //返回之前调用析构函数; } 

运行结果为: 调用了析构函数

第二种调用方式:

class Demo{ public:     ~Demo()                     //定义析构函数     {        std::cout << "调用了析构函数 " << std::endl;     } };  int main() {     Demo();      //在Visual Studio 2017中运行。     return 0;   } 

运行结果与上方相同

注釋

[编辑]
  1. ^ Finalize(),Finalize函式,英語:Finalizer

參考資料

[编辑]

相關條目

[编辑]