析构函数

1、析构函数

构造函数会在对象实例化的时候被调用,而析构函数则在对象被销毁时调用,归还系统资源,

收拾残局,例如当我们在构造函数中申请了内存,那么我们就必须在析构函数中释放内存。

  • 定义格式:  ~类名 (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 }

 

2、总结

 

posted @ 2017-06-14 17:59  恍如隔世灬  阅读(321)  评论(0编辑  收藏  举报