析构函数什么时候会调用?
我希望c#程序在退出后自动向数据库更新状态,所以定义了
Class A{
A(){
//一些数据库初始化工作
}
~A(){
//一些更新数据库工作
}
}
然后在CLI程序一运行的时候就new A了
但是我发现程序的窗口关闭后并没有调用析构
是我用错了?还是有其他方法控制程序退出时的调用?谢谢
2012年11月22日 3:34
回复 | 引用 |
答案
Question
登录进行投票
0
登录进行投票
dear
我是可以调用的,无法模拟你的问题,为了防止有人未依正常程序结束物件的生命周其,才有析构的出现
你可在 ~A() 设定中断点观察
析构是为了释放非托管资源用的,并非让你用来更新数据。
http://msdn.microsoft.com/zh-cn/library/66x5fx1b(VS.80).aspx
程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。
http://hi.baidu.com/yy3b2007com/item/c79634c74b257e78cfd4f81b
析构函数什么时候会调用?相关推荐
- 析构函数与构造函数的调用
阅读程序写结果: #include <iostream> using namespace std;class A {public:A();A(int i,int j);~A();void ...
- C++——析构函数什么时候被调用
1.对象生命周期结束,被销毁时 2.delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类析构函数是虚函数时: 3.对象A是对象B的成员,B的析构函数被调用时,对象A的析构函数也 ...
- C++中最好不要在构造函数和析构函数中调用虚函数!!!
1.最好不要在基类和派生类的构造和析构函数中调用虚函数,不会出现多态性 实例如下: #include "iostream"using namespace std;class Bas ...
- C++对象模型8——构造函数和析构函数中对虚函数的调用、全局对象构造和析构、局部static数组的内存分配
一.构造函数和析构函数中对虚函数的调用 仍然以https://blog.csdn.net/Master_Cui/article/details/109957302中的代码为例 base3构造函数和析构 ...
- C++中最好不要在构造函数和析构函数中调用虚函数
1.最好不要在基类和派生类的构造和析构函数中调用虚函数,不会出现多态性 实例如下: #include "iostream"using namespace std;class Bas ...
- 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
构造函数.拷贝构造函数和析构函数的的调用时刻及调用顺序 对象是由"底层向上"开始构造的,当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达 ...
- delete不调用析构函数的两种情况
1. 所使用的类为预定义类 下面这段函数代码编译运行时没有问题的,不需要CPtr的定义 ---PtrUser.h class CPtr; // 预定义 class CPtrUser { public: ...
- c++——对象的构造和析构函数、构造函数的分类及调用
1构造函数和析构函数的概念 有关构造函数 1构造函数定义及调用 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数: 2)构造函数在定义时可以有参数: 3)没有任何 ...
- vector用erase删除元素时,为什么被删元素的析构函数会被调用更多次?
vector用erase删除元素时,为什么被删元素的析构函数会被调用更多次? 分类: C++2011-08-18 14:55 720人阅读 评论(0) 收藏 举报 vectoriteratorexce ...
最新文章
- 国产数据库年终大盘点
- MATLAB_no.3:关于车牌的.
- java测试不成功_为什么我的Java布尔测试总是失败?
- 通过醉品商城改版反思网站改版的那些事
- 速来!亚马逊云科技AI盛会开源专场吹响集结号
- 静态网页案例_手把手教你构建网页
- linux ssh免密登陆远程服务器
- 用开源的人工标注数据来增强RoFormer-Sim
- CT基本概念(必须掌握)
- 机器学习:SVM、软间隔、随机梯度下降SVM线性算法
- NGINX生命周期-转
- Error:Unable to make the module: core, related gradle configuration was not found. Please, re-import
- Apache虚拟机和访问控制
- 在Visual Studio中使用Visual Basic教程:创建一个控制台应用
- win10怎么修复网络连接服务器失败,微软发布修复补丁修复Win10无网络连接问题...
- 星空特效HTML代码,旋转的星空特效代码
- Kubernetes operators
- uni-app 跳转至手机浏览器
- 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码和在线测试地址】
- obs直播多音轨软件设置相关