【C++ 筆記】解構子(Destructors) - part 18.5 === 目錄(Table of Contents): [TOC] --- 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 解構子(Destructors) --- 這 18.5 part 是來補全前面建構子只講到一點的解構子,由於解構子的概念並未像建構子那麼複雜,所以只需要 0.5 part 的時間來學習XD。 解構子(Destructor),又名為析構函數,同於建構子是個特殊的成員函數,在當物件的作用域結束時,編譯器會呼叫此函數。 Destructor 可釋放類別中的物件先前使用的所有記憶體,可避免記憶體洩漏與資源浪費的情形發生。 :::success 解構子名稱與類別名稱相同,但是需要加上波浪符號(`~`)在最前面,以示為解構子。 ::: ```cpp= class ClassName { public: ~ClassName() { // Body of Destructor } }; ``` 以下是個範例: ```cpp= #include <iostream> using namespace std; class Line { public: void setLength( double len ); double getLength( void ); Line(); // 這是建構子的宣告方式 ~Line(); // 這是解構子的宣告方式 private: double length; }; // 成員函數定義,包含建構子 Line::Line(void) { cout << "Object is being created" << endl; } Line::~Line(void) { cout << "Object is being deleted" << endl; } void Line::setLength( double len ) { length = len; } double Line::getLength( void ) { return length; } // 程式之主函數 int main( ) { Line line; // 設定長度 line.setLength(6.0); cout << "Length of line : " << line.getLength() <<endl; return 0; } ``` 來源:https://www.runoob.com/cplusplus/cpp-constructor-destructor.html 輸出結果: ``` Object is being created Length of line : 6 Object is being deleted ``` 參考資料 --- [C++ Classes and Objects - GeeksforGeeks](https://www.geeksforgeeks.org/c-classes-and-objects/) [C++ 类构造函数 & 析构函数 | 菜鸟教程](https://www.runoob.com/cplusplus/cpp-constructor-destructor.html)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up