问题描述
我读到只有在类中存在虚函数时才应将析构函数声明为虚函数。 这是一项要求还是可以做其他事情?
解决方法
如果你打算在多态设置中使用你的类,你应该有虚拟析构函数。如果您不打算使用多态和多态销毁(通过基类销毁),那么您不需要虚拟析构函数。
通常,当有虚函数时,我们在多态设置中使用类。在使用类时,没有虚函数会强制使用强制转换。在这一点上,我会建议简单地使用一个变体,它根本不需要虚拟析构函数。
综上所述,如果您想以多态方式公开的唯一操作是销毁,那么在某些情况下它仍然很有用。
我读到只有在类中存在虚函数时才应将析构函数声明为虚函数。 这是一项要求还是可以做其他事情?
如果你打算在多态设置中使用你的类,你应该有虚拟析构函数。如果您不打算使用多态和多态销毁(通过基类销毁),那么您不需要虚拟析构函数。
通常,当有虚函数时,我们在多态设置中使用类。在使用类时,没有虚函数会强制使用强制转换。在这一点上,我会建议简单地使用一个变体,它根本不需要虚拟析构函数。
综上所述,如果您想以多态方式公开的唯一操作是销毁,那么在某些情况下它仍然很有用。