问题标签 [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.
vba - Excel VBA 对象构造函数和析构函数
我需要在 VBA 中创建一些需要相互引用的自定义对象,但我遇到了一些问题。
首先 - 对象构造函数如何在 VBA 中工作?有构造函数吗?
第二 - 有析构函数吗?VBA 如何处理对象生命周期的结束?如果我有一个引用其他对象的对象(这是他们唯一的引用),那么我可以将它设置为 Nothing 并完成它还是会产生内存泄漏?
这种准 OO 的东西只是有点烦人。
c - C : pthread 数据特定的析构函数只调用一次
从pthread_key_create
手册页:
可选的析构函数可以与每个键值相关联。在线程退出时,如果键值具有非 NULL 析构函数指针,并且线程具有与键关联的非 NULL 值,则以当前关联值作为其唯一参数调用指向的函数。如果线程退出时存在多个析构函数,则未指定析构函数调用的顺序。
如果在所有非 NULL 值与关联的析构函数调用了所有析构函数之后,仍然有一些非 NULL 值与关联的析构函数,则重复该过程。如果在析构函数的至少 [PTHREAD_DESTRUCTOR_ITERATIONS] 次迭代调用杰出的非 NULL 值之后,仍然有一些非 NULL 值具有关联的析构函数,则实现停止调用析构函数。
我写了一个小例子,用一个简单的析构函数为非 NULL 线程特定值打印“Hello World”。据我所知,这个析构函数只被调用一次(至少在 linux fedora 和 mac os x 上),即使在第一次调用析构函数后线程特定的值仍然不是 NULL。
我错过了什么吗?!(在 glibc 上 PTHREAD_DESTRUCTOR_ITERATIONS = 4。)
这是我的小例子:
c# - 为什么在这个非常简单的场景中没有调用我的 .net 析构函数?
我有以下代码:
我认为我的 Finalizer 方法会在我调用 GC.Collect 时被调用,但事实并非如此。
谁能解释我为什么?
c# - 在.net 析构函数中重新创建对“this”的根引用是否合法?
在 .net 中编写以下内容是否合法?
它按预期工作并向控制台写入'0',但我想知道它是否保证始终工作。
有人知道幕后发生了什么吗?
c# - C# 析构函数(又名:终结器)所涉及的成本?
析构函数应该只释放你的对象持有的非托管资源,它不应该引用其他对象。如果您只有托管引用,则不需要(也不应该)实现析构函数。您只希望它用于处理非托管资源。因为有一个析构函数需要一些成本,所以你应该只在消耗有价值的、非托管资源的方法上实现它。
本文没有对此进行更深入的讨论,但是在 C# 中使用析构函数会涉及哪些成本?
注意:我知道 GC 和析构函数在可靠时间没有被调用的事实,除此之外,还有什么其他的吗?
c++ - C++中的纯虚析构函数
写错了吗:
对于抽象基类?
至少在 MSVC 中编译...它会在运行时崩溃吗?
c++ - 将析构函数设为私有有什么用?
将析构函数设为私有有什么用?
c++ - 析构函数应该是线程安全的吗?
我正在浏览旧代码并找到以下代码段:
我想知道它是否有助于保护析构函数?
考虑一个场景:
如果执行顺序是 1=>2,那么它可能会起作用。但是如果顺序颠倒了怎么办?
是设计问题吗?
c++ - C++中调用析构函数和构造函数的顺序是什么
在 C++ 中调用析构函数和构造函数的顺序是什么?使用一些基类和派生类的例子
c++ - 我需要显式调用基本虚拟析构函数吗?
当在 C++ 中重写一个类(使用虚拟析构函数)时,我在继承类上再次将析构函数实现为虚拟,但是我需要调用基本析构函数吗?
如果是这样,我想它是这样的......
我对吗?