在前边的学习,我们知道,我们可以把类成员的初始化放在构造函数中,当我们定义类时,自动调用构造函数完成初始化工作;同样的道理,当我们的类对象使用完毕,销毁时,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");
}
上边的代码中&#