【发布时间】:2016-07-05 09:38:09
【问题描述】:
我是 C++ 新手,我正在努力理解的概念之一是析构函数。出于好奇,不必要的(例如,当一个类没有动态分配的内存、资源或任何需要用户定义的析构函数时)和空析构函数会导致任何无法预料的问题吗?
编辑:我知道这部分内容已在 Will an 'empty' constructor or destructor do the same thing as the generated one? 中得到解答,但我想扩展它以询问更多关于一般性负面后果的信息,例如崩溃或使应用程序变慢。有一些重叠,但这是一个略有不同的问题。
【问题讨论】:
-
@mkaes 这是一个比你提到的更广泛的问题
-
@SomeWittyUsername:问题本身可以解释为“更广泛”,但链接问题中的答案仍然回答了这个问题。所以我仍然认为这个问题应该结束。
-
@mkaes 我正在寻找与该问题(我已阅读)中包含的更多/略有不同的信息。希望我的编辑能澄清一点。
-
好吧,一个空的析构函数会导致内存泄漏,这很糟糕。但是我认为您应该使问题更准确,大多数回答者都没有这样阅读。我猜你试图排除“当一个类没有动态分配的内存时”,但你应该排除“当一个类没有资源时”。例如,如果它拥有这些东西的“原始”C 句柄并且没有 dtor,它可能仍然会泄漏文件或套接字。
-
@ChrisBeck 感谢您指出这一点,如果我最近的编辑仍不清楚,请告诉我。