C++:析构函数可以是 class 中唯一的虚函数吗?

C++: Can the destructor be the only virtual function in a class?

我读到只有当 class 中有虚函数时,才应将析构函数声明为虚函数。 这是一项要求还是可以这样做?

如果您打算在多态设置中使用您的 class,您应该拥有虚拟析构函数。如果你不打算使用多态和多态销毁(通过基数销毁class)那么你不需要虚拟析构函数。

通常,当存在虚函数时,我们在多态设置中使用 classes。没有虚函数会在使用 classes 时强制使用强制转换。在这一点上,我会建议简单地使用一个变体,它根本不需要虚拟析构函数。

综上所述,如果您想要以多态方式公开的唯一操作是销毁,它在某些情况下仍然有用。