26 析构函数 Destructor
定义
与构造函数相反,析构函数在销毁对象时运行。是一个特殊的函数或方法
- 构造函数通常设置变量或其他的初始化;析构函数卸载量,清理使用过的内存
- 析构函数适用于堆和栈分配的对象 。
- 栈分配的,只有主函数结束时候,析构函数才会被调用
- 写析构函数能够防止内存的泄露。
- 涉及到堆和栈的相关信息,可以学习之后回头来看。
代码说明
class Entity
{
public:
float X, Y;
Entity() //construct function 初始化
{
std::cout << "created Entity!" << std::endl;
X = 5.0f;
Y = 5.0f;
}
~Entity() //destruct 析构函数
{
std::cout << "destroyed Entity!" << std::endl;
}
void print()
{
std::cout << X << "," << Y << std::endl;
}
};
void function() //栈分配的,只有主函数结束时候,析构函数才会被调用
//所以在这里定义一个function执行析构函数相关指令,否则在主函数结束后,啥也观测不到
{
Entity e; //加个断点,就可以看到析构函数在作用域结束后调取
e.print();
}
int main()
{
function();
std::cin.get();
}