如果我没有为C++类提供显式的析构函数,因为我确信编译器提供的默认析构函数是我所有类的需求,那很好吗?或者这被认为是不好的做法?
提供显式析构函数的主要优点是您可以轻松地在其中放置断点以进行调试。有些人喜欢这样,因此更喜欢给每个类一个明确的析构函数。
但是,如果该类足够简单,很明显默认构造函数就足够了,那么省略它就完全没问题了。另请注意,添加析构函数确实有其缺点:除了代码中的额外噪音外,添加析构函数可能会阻止您的类成为POD。所以你仍然应该避免在你的代码中无意识地传播琐碎的析构函数。
我认为省略空的非虚拟析构函数有害的唯一情况是,为什么析构是微不足道的(例如,如果三规则/五规则表明您需要一)。在这种情况下,我仍然会提供一个显式的空析构函数,并在正文中注释为什么什么都不做是安全的。但这更多是个人偏好而不是固定规则。