析构函数

2020-08-27 17:22:46 浏览数 (1)

什么是析构函数

当对象结束其生命周期,如对象所在的函数已调用完毕时,系统会自动执行析构函数。在C 语言中:析构函数名应与类名相同,只是在函数名前面加一个位取反符 ~ ,例如 ~ stud( ),以区别于构造函数。 它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。 如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。所以许多简单的类中没有用显式的析构函数。

函数定义

当程序中没有析构函数时,系统会自动生成以下析构函数: <类名>::~<类名>(){},即不执行任何操作。 析构函数格式如下:

代码语言:javascript复制
class <类名>
{
     public:
       ~<类名>();
};
<类名>::~<类名>()
{
    //函数体
}

析构函数的性质

1.析构函数在类对象销毁时自动执行。 2.一个类只能有一个析构函数,而且析构函数没有参数。 3.析构函数的名字是“ ~ ”加上类的名字。 4.与构造函数一样,析构函数也没用任何类型,即不属于返回值函数也不属于void函数,她不能像其他函数一样被调用。

0 人点赞