析构函数
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、总结