空的析构函数会造成伤害吗?

ce_*_*ort 0 c++ c++11

我是 C++ 新手,我正在努力理解的概念之一是析构函数。出于好奇,不必要的(例如,当类没有动态分配的内存、资源或任何需要用户定义的析构函数的东西时)和空的析构函数会导致任何不可预见的问题吗?

编辑:我知道这部分内容已在“空”构造函数或析构函数是否会与生成的构造函数或析构函数执行相同的操作?但我想扩大它的范围,询问更多关于普遍负面后果的问题,例如崩溃或使应用程序变慢。有一些重叠,但这是一个略有不同的问题。

Ser*_*eyA 5

析构函数的琐碎性还有一个有趣的方面(在链接的副本中似乎没有讨论)。编译器生成的(或defaulted)析构函数被认为是平凡的析构函数,并且拥有平凡的析构函数是您的类成为 POD 类型的先决条件。用户定义的析构函数即使为空,也会阻止您的类成为 POD 类型。

拥有 POD 类型有时非常重要。例如,POD 类型可以被memcpy编辑或实体序列化。

  • @ce_nort - 你还不应该处理`memcpy`。很长很长一段时间都没有。 (2认同)