C++开发初级
1098 浏览 5 years, 10 months
4.2 使用析构函数释放内存
版权声明: 转载请注明出处 http://www.codingsoho.com/使用析构函数释放内存
如果不再需要动态分配的内存,就必须释放它们。如果为对象动态分配了内存,那么将会在析构函数中释放内存。当对象被销毁的时候,编译器确保调用析构函数。
下面是带有析构函数的Spreadsheet类。
class Spreadsheet
{
public:
Spreadsheet(int inWidth, int inHeight);
~Spreadsheet();
};
代码取自 Spreadsheet\Spreadsheet.h
析构函数与类(以及构造函数)同名,前面带有一个波浪号(~)。析构函数没有参数,并且只能有一个。
下面是Spreadsheet类析构函数的实现:
Spreadsheet::~Spreadsheet()
{
for (int i = 0; i < mWidth; i++) {
delete [] mCells[i];
}
delete [] mCells;
mCells = nullptr;
}
代码取自 Spreadsheet\Spreadsheet.cpp
析构函数释放在构造函数中分配的内存。当然,并没有规则要求在析构函数中释放内存。在析构函数中可以编写任何代码,但最好让析构函数只释放内存或者清理其他资源。