C++学习复习笔记03 – 析构函数

日期:2015年07月17日 作者: 分类:编程 浏览:2786

析构函数名也应与类名相同,只是在函数名前面加一个位取反符~,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数,并且如果自定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数),它也不进行任何操作。所以许多简单的类中没有用显示的析构函数。

析构函数的知识点:

1. 函数名为取反符~加上类名,例如~stud( );

2. 无参数无返回值;

3. 在对象脱离作用域时,如程序退出、函数调用完成退出时,析构函数会自动调用;

4. 只能有一个析构函数;

 

由于自动调用,我们就可以在析构函数中做清理类工作,如释放堆中申请的内存。

 

代码实例:

#include <iostream>
#include <string>
using namespace std;

class Person
{
public:
    Person()
    {
        cout << "创建类:构造函数Person()自动执行了" << endl;
    }
    ~Person()
    {
        cout << "结束类:析构函数~Person()自动执行了" << endl;
    }
};

int main()
{
    Person p1;
    cout << "------------------------------" << endl;
    return 0;
    //此处 p1 将脱离作用域,析构函数将发生作用
}

 

编译运行:

cpp03

标签:

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/2015/07/900.html