//析构函数:在主程序文件中实现对象的调用:
#include<iostream>
using namespace std;
#include"Person.h"
void main(){
CPerson p;
p.ShowFrameMessage();
p.ShowStartMessage();
p.ShowFrameMessage();
}
//Person.h声明定义:
class CPerson
{
pubilc:
CPerson();
~CPerson();
char *m_pMessage();
void ShowStartMessage();
void ShowFrameMessage();
};
析构函数是一种特殊的成员函数,它的作用是在对象被销毁时执行清理操作。例如,释放对象使用的资源(如内存、文件句柄等)或者执行其它必要的清理操作。析构函数一般与构造函数成对存在,用于构造函数中分配的资源的释放。
在C++中,析构函数的特征如下:
- 函数名与类名相同,前面加上符号“~”(波浪线);
- 没有返回值,也不需要手动调用;
- 一个类可以有多个析构函数,但只能有一个默认析构函数;
- 默认析构函数会自动调用父类和成员对象的析构函数。
class ClassName {
public:
// 构造函数
ClassName();
// 析构函数
~ClassName();
// 其他有用的成员函数
};
#include <iostream>
#include <cstring>
using namespace std;
class MyString {
private:
char* str;
public:
// 构造函数
MyString(const char* s) {
str = new char[strlen(s) + 1];
strcpy(str, s);
}
// 析构函数
~MyString() {
cout << "释放字符串:" << str << endl;
delete[] str;
}
};
int main() {
MyString str("Hello, World!"); // 创建MyString对象
return 0;
}
输出:
释放字符串:Hello, World!
在这个示例中,当MyString对象被销毁时,析构函数会自动调用,释放字符串的内存。