首页 > 解决方案 > C++:析构函数可以是类中唯一的虚函数吗?

问题描述

我读到只有当类中有虚函数时,才应该将析构函数声明为虚拟的。这是一个要求还是可以做其他事情?

标签: c++c++11destructorvirtual-destructor

解决方案


如果你打算在多态设置中使用你的类,你应该有虚拟析构函数。如果您不打算使用多态性和多态破坏(通过基类进行破坏),那么您不需要虚拟析构函数。

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

尽管如此,如果您想要以多态方式公开的唯一操作是破坏,那么在某些情况下它仍然很有用。


推荐阅读