1.93、什么是析构函数,如何重载析构函数?

析构函数是C++类中的一种特殊成员函数,用于在对象生命周期结束时自动执行清理工作,释放对象占用的资源(如动态分配的内存、文件句柄等),防止资源泄漏。

  • • 定义特征:析构函数名称为类名加波浪号~,如~ClassName(),无参数且无返回值。
  • • 调用时机:当对象超出作用域、通过delete释放动态对象、程序结束时全局或静态对象销毁时自动调用。
  • • 作用:释放对象持有的资源,执行必要的清理,保证资源正确回收,避免内存泄漏。
  • • 重载情况:析构函数不能重载,因为它只能有一个且参数固定为空,函数重载要求同名函数参数列表不同,而析构函数参数固定为空。
  • • 虚析构函数:析构函数可以声明为virtual,保证通过基类指针删除派生类对象时调用正确的析构函数,防止资源泄漏。

关键点总结

特性 说明
名称 ~类名()
参数
返回值
是否可重载 不可重载
是否可虚 可以声明为virtual支持多态销毁
调用时机 对象生命周期结束自动调用
作用 释放资源,执行清理

简短示例

class MyClass {
public:
    MyClass() { /* 构造函数 */ }
    ~MyClass() { /* 释放资源 */ }
};

结论

析构函数是类的“终结者”,用于自动清理资源,不能重载,只能定义一个,且通常建议基类析构函数声明为virtual以支持多态安全销毁。这种设计确保了资源管理的正确性和程序的健壮性。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
个人教程网站内容更丰富:(https://www.1217zy.vip/)

阅读剩余
THE END