解构子
解构子(英语:,有时简称 dtor)在面向对象进程设计里是一个方法,当对象的生命周期结束时,它会自动地被调用运行。它最主要的目的在于,清空并释放对象先前创建或是占用的内存资源。解构子的整体使用概念关键在于RAII。一个具备垃圾回收机制的编程语言,无法确保解构子是否会被运行,通常这类的编程语言不属于RAII的范围内。这类的编程语言,只要经由某个适当的函数,通常会调用Dispose()
函数,做调用的动作,那么它一定会从现有资源释放对象。与使用垃圾回收机制的Finalize()
相比,建议使用解构子是释放资源的适当做法[注 1]。
代码示例
class Demo{
public:
~Demo() //定义析构函数
{
std::cout << "调用了析构函数 " << std::endl;
}
};
int main()
{
{
Demo demo ;
} // 在部分开发环境中可能没有显示内容,把它放在块儿中即可
return 0; //返回之前调用析构函数;
}
运行结果为: 调用了析构函数
第二种调用方式:
class Demo{
public:
~Demo() //定义析构函数
{
std::cout << "调用了析构函数 " << std::endl;
}
};
int main()
{
Demo(); //在Visual Studio 2017中运行。
return 0;
}
运行结果与上方相同
注释
-
Finalize()
,Finalize函数,英语:
相关条目
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.