我在阅读this,其中提到析构函数是琐碎的和非琐碎的。



例如,我有一个类,

class C {
    public:
     ~C(); // not explicitly declared.
};

如果隐式定义了C::~C(),它是否会产生普通错误?

最佳答案

您的话语很困惑。您的示例确实声明了显式析构函数。您也只是忘记定义它,所以您会收到一个链接器错误。

规则很简单:您的类是否具有显式的析构函数?如果是的话,那您就算平凡了。如果否,请检查每个非静态成员对象;否则,请检查每个对象。如果它们中的任何一个都是不平凡的,那么您就是不平凡的。

09-06 08:59