析构函数不是完成对象的销毁,局部对象销毁工作是由编译器完成的。 而只是对象在销毁时会自动调用析构函数,完成我们定义的类的一些资源清理工作。类中如果没有涉及到资源管理时,析构函数是否给出无所谓;但是如果涉及到资源管理,用户必须要显式给出析构函数,在析构函数中清理对象的资源。
析构函数特性:
1、“析构函数名是在类名前加上字符 ~。
2、无参数无返回值。(析构函数不能重载)
3、一个类有且只有一个析构函数。(若未显式定义,系统会自动生成默认的析构函数)
4、对象生命周期结束时,C++编译系统系统(编译器)自动调用析构函数,完成对象中资源的清理。
类中如果没有涉及到资源管理时,析构函数是否给出无所谓;但是如果涉及到资源管理,用户必须要显式给出析构函数,在析构函数中清理对象的资源。