问题标签 [destructor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ 析构函数问题
关于下面的示例代码,为什么基类的析构函数被调用了两次?
以下是程序运行时的输出示例:
wpf - WPF 析构函数
有谁知道为 XBAP 应用程序编写析构函数的正确方法?
python - 在 Python 中删除模块时调用的方法
有没有一种方法可以添加到我的模块中,在破坏类时会被调用?
我们有一个简单的类,它只有静态成员函数,卸载模块时需要清理数据库连接。
希望对于__del__
没有实例的模块或类有一种方法吗?
python - 在对象销毁时清理内部 pysqlite 连接
我有一个带有内部数据库连接的对象,该对象在其整个生命周期内都处于活动状态。在程序运行结束时,必须提交并关闭连接。到目前为止,我使用了显式close
方法,但这有点麻烦,尤其是在调用代码中可能发生异常时。
我正在考虑使用__del__
关闭的方法,但是在网上阅读了一些之后,我有一些担忧。这是一个有效的使用模式吗?我可以确定内部资源将被__del__
正确释放吗?
这次讨论提出了类似的问题,但没有找到令人满意的答案。我不想有一个显式的close
方法,并且 usingwith
不是一个选项,因为我的对象没有像 open-play-close 那样简单地使用,而是作为另一个使用它的更大对象的成员保存在 GUI 中运行时。
C++ 有完美的析构函数,可以安全地释放资源,所以我想 Python 也有一些共识。出于某种原因,情况似乎并非如此,社区中的许多人发誓反对__del__
. 那有什么办法呢?
wcf - 为什么当我关闭客户端应用程序而不在客户端调用“关闭”方法时 WCF 不销毁对象?
我有一个 net tcp WCF 服务如下
当我在客户端创建一个对象如下
构造函数被调用,但是当我关闭客户端应用程序而不调用close mehotd时,没有调用析构函数?为什么?这是否意味着服务对象仍然在服务器上工作?
c++ - “空”构造函数或析构函数会与生成的构造函数做同样的事情吗?
假设我们有一个(玩具)C++ 类,如下所示:
由于没有定义析构函数,C++ 编译器应该为 class 自动创建一个析构函数Foo
。如果析构函数不需要清理任何动态分配的内存(也就是说,我们可以合理地依赖编译器给我们的析构函数),将定义一个空的析构函数,即。
和编译器生成的一样吗?一个空的构造函数怎么样——也就是说,Foo::Foo() { }
?
如果存在差异,它们存在于哪里?如果不是,一种方法是否优于另一种方法?
c++ - 调用析构函数会显式地完全销毁对象吗?
如果我显式调用析构函数( myObject.~Object() ),这是否可以确保该对象将被适当地销毁(调用所有子析构函数)?
好的一些代码:
我知道我可以删除该对象,但我不想这样做。我想将分配的内存放在手边,作为一项重要的优化。
谢谢!
c# - 在 C# 中,类中的析构函数和 Finalize 方法有什么区别?
类中的析构函数和 Finalize 方法之间有什么区别(如果有的话)?
我最近发现 Visual Studio 2008 将析构函数视为 Finalize 方法的同义词,这意味着 Visual Studio 不会让您在一个类中同时定义这两种方法。
例如,下面的代码片段:
在析构函数中调用 Finalize 时出现以下错误:
以下方法或属性之间的调用不明确:“TestFinalize.~TestFinalize()”和“TestFinalize.Finalize()”
如果对 Finalize 的调用被注释掉,则会出现以下错误:
类型“ManagementConcepts.Service.TestFinalize”已经定义了一个名为“Finalize”的成员,具有相同的参数类型
c++ - 如何在 C++ 中将方法指定为析构函数而不是构造函数?
如何在 C++ 中将方法指定为析构函数而不是构造函数?这让我非常困惑。我分不清两者的区别。
c++ - 析构问题
这是我的 addCard 函数,它以 playCard 作为参数,然后将其自身的地址传递给分配的指向 playCard 对象的指针数组。
现在,当我运行我的程序时,它运行良好,但在调用析构函数时崩溃。
是不是因为我只在 addCard 函数中交出了playingCard 对象的地址而崩溃了。它应该是一个指针吗?