49得票2回答
显式调用析构函数

我知道在大多数情况下,我们不应该显式地调用析构函数。然而,我在C++11标准N3485第13.4.5节的模板参数示例中看到了一个例外。 An explicit destructor call for an object that has a type that is a class t...

49得票5回答
静态终结器

如何进行静态终结? 并没有静态析构函数。在默认域中不会引发 AppDomain.DomainUnload 事件。由于AppDomain.ProcessExit 事件将总时间(默认设置为三秒)在所有事件处理程序之间共享,因此它实际上无法使用。

14得票2回答
析构函数中关于"this"的用法

在析构函数中使用this参数来调用某个函数是否有效? 该函数不存储指针,但假定对象处于完全功能状态。

7得票2回答
如何可靠地使用 __del__ 方法?

我了解到Python并不保证在对象被删除时调用__del__析构函数,也就是说del x并不一定会触发x.__del__()。 如果我想确保正确的对象清理,我应该使用上下文管理器(在with语句中)。 我知道这很愚蠢,但由于某些原因(请不要问为什么),我被绑定在一个Python 2.4系统...

20得票2回答
`weakref`回调能否替换`__del__`方法?

是否有任何障碍阻止weakref做所有__del__可以做的事情,但提供更强的保证(例如,finalize保证在解释器退出之前将进行调用,并且调用顺序是明确定义的等)? 似乎在遥远的过去曾经认为weakref最终会导致从语言中删除__del__。 是什么阻止了这种情况发生? 似乎__de...

600得票11回答
如何正确清理 Python 对象?

class Package: def __init__(self): self.files = [] # ... def __del__(self): for file in self.files: os.un...

7得票1回答
Python:不能使用super()调用父类析构函数

我无法在子类的析构函数中调用父类的析构函数。请查看以下代码: class BaseClass(object): def __del__(self): print 'BaseClass->Destructor' class DerivativeClass(Bas...

7得票4回答
停止执行而不跳过析构函数

有没有可能在不跳过析构函数调用的情况下终止软件执行?例如,在下面的代码中,由于exit(1)语句的存在,test的析构函数将永远不会被调用。 #include <iostream> #include <cstdlib> using namespace std; cl...

28得票5回答
临时对象何时被销毁?

以下代码会输出one, two, three。这是所有C++编译器都期望的且正确的吗? class Foo { const char* m_name; public: Foo(const char* name) : m_name(name) {} ~Foo(...

22得票4回答
当异常被抛出时如何检测析构函数的运行?

在 C++ 中,如何检测析构函数是由于异常抛出导致栈被卷回而运行,而不是由于作用域正常退出触发析构函数?我想知道这一点,以便创建一个类,该类具有某些清理代码,总是在正常退出时运行,但在异常发生时跳过。