析構函數

一、析構函數ios

構造函數會在對象實例化的時候被調用,而析構函數則在對象被銷燬時調用,歸還系統資源,函數

收拾殘局,例如當咱們在構造函數中申請了內存,那麼咱們就必須在析構函數中釋放內存。spa

  • 定義格式:  ~類名 (void),不容許加任何參數,這點和構造函數不一樣;
  • 若是沒有自定義析構函數則系統自動生成;
  • 析構函數在對象銷燬時自動調用;
  • 析構函數沒有返回值,沒有參數,也不能重載;
 1 #include <string>
 2 #include <iostream>
 3 
 4 namespace User {
 5     
 6     class Cstudent {
 7     public:
 8         /* 普通構造函數 */
 9         Cstudent(void) { std::cout << "Cstudent(void)" << std::endl; }
10         
11         /* 拷貝構造函數 */
12         Cstudent(const Cstudent& stu) { std::cout << "Cstudent(const Cstudent& stu)" << std::endl; }
13 
14         /* 析構函數 */
15         ~Cstudent(void) { std::cout << "~Cstudent(void)" << std::endl; }
16 
17     private:
18 
19     };
20 }
21 
22 int main(void)
23 {
24     User::Cstudent stu1;
25     User::Cstudent stu2(stu1);
26     return 0;
27 }

 

二、總結code

相關文章
相關標籤/搜索