一、析构构造定义
构造函数:对象创建后,编译器自动调用构造函数,完成对象的初始化工作,类名(){}
。
1.没有返回值
2.函数名和类名相同
3.有参数,可以发生重载
4.编译器自动调用,且只调用一次
析构函数:对象销毁前,编译器自动调用析构函数,完成对象的清理工作,~类名(){}
。
1.没有返回值
2.函数名和类名相同,在名称前加上~
3.没有参数,不可以发生重载
4.编译器自动调用,且只调用一次
如果我们不提供构造和析构函数,编译器会自己的构造和析构函数,但是构造和析构函数是空实现。
Person() //构造函数
{
}
~Person() //析构函数
{
}
二、代码演示
#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
using namespace std;
class Person
{
public:
Person() //构造函数
{
cout << "person 的构造函数调用" << endl;
}
~Person() //析构函数
{
cout << "person 的析构函数调用" << endl;
}
};
/*
void test01()
{
Person p; //p是一个局部变量 当test01调用完后,就会释放这个对象,释放前会调用析构函数
}
*/
void sig(int signum)
{
printf("我收到了Ctrl+c信号\n");
}
int main()
{
signal(SIGINT,sig);
Person p;
pause();
printf("我从休眠中醒来了\n");
return 0;
}
输出结果