C++类的析构函数
构造函数和析构函数是类体定义中比较特殊的两个成员函数
构造函数的学习:——————》C++类的构造函数
本文主要介绍构造函数析构函数异同以及析构函数使用方法。
相同点:
两者都没有返回值,不使用return语句,也不需要关键字void。
不同点:
1、构造函数主要是用来在对象创建时,给对象中的一些数据成员赋值,主要目的计数来初始化对象。
2、析构函数的功能是用来释放一个对象的,在对象删除前,用它来做一些清理工作。
3、构造函数名标识符和类名标识符相同,析构函数名标识符就是类名标识符前加"~"符号。
析构函数使用方法:
class CPerson{
public:
~CPerson(){
delete M;
}
char M[30];
};
构造函数析构函数的入门应用源代码:
#include<iostream>
#include<string.h>
using namespace std;
class CPerson{
public:
CPerson(){
strcpy(M,"Hello World\0");
}
~CPerson(){
delete M;
}
char M[30];
show(){
cout<<M<<endl;
}
};
int main(){
CPerson p1;
p1.show();
}
结果图:
tips:对于以下的注意事项和调用环境,你要是心情好就看看,不想看就算了,其实没什么卵用。
使用析构函数的注意事项:
1、一个类中只可能定义一个析构函数。
2、析构函数不能重载。
构造函数析构函数的调用环境:
1、自动变量的作用域是某个模块,当此模块被激活时,自动变量调用构造函数,当退出此模块时,调用析构函数。
2、全局变量在进入main函数之前会调用析构函数,在程序终止时会调用析构函数。
3、动态分配的对象在使用new为对象分配内存时会调用构造函数,使用delete删除对象时会调用析构函数。
4、临时变量是为支持计算,由编译器自动产生的。临时变量的生存期的开始和结尾会调用构造函数和析构函数。