在前边的学习,我们知道,我们可以把类成员的初始化放在构造函数中,当我们定义类时,自动调用构造函数完成初始化工作;同样的道理,当我们的类对象使用完毕,销毁时,C++同样提供了一个特殊的函数来使我们方便的完成一些收尾工作(比方指针释放等),这个特殊的函数就是析构函数。
-析构函数语法规则: ~className(){}
-析构函数无返回值、无参数,不能重载
#include <iostream>
#include <string>
using namespace std;
class test
{
private:
int *m_p;
public:
test():m_p(NULL) //构造函数中申请堆空间
{
m_p = new int(10);
cout << "test()" << endl;
}
int getValue()
{
return *m_p;
}
~test() //析构函数中释放堆空间
{
delete m_p;
m_p = NULL;
cout << "~test()" << endl;
}
};
int main()
{
{
test t; //定义一个局部对象,放改局部区域执行完毕后对象会自动销毁
cout << "t.getValue() = " << t.getValue() << endl;
}
system("pause");
}
上边的代码中,我们定义了一个类成员指针,并在构造函数中申请堆空间,对象销毁时在析构函数中释放堆空间

本文探讨了C++中对象的销毁过程,重点介绍了析构函数的作用。析构函数用于在对象销毁时执行必要的收尾工作,如释放指针所指向的堆内存。文章通过实例说明了new和delete操作符对堆对象构造和析构的顺序,强调了析构函数在内存管理中的重要性。
最低0.47元/天 解锁文章
776

被折叠的 条评论
为什么被折叠?



