如何在没有虚函数且没有继承的情况下删除指向类的指针

时间:2019-01-16 14:10:33

标签: c++ gcc destructor gcc-warning

我不想将类的析构函数重写为虚拟的,因为它没有任何子类,也没有虚函数,也不应该具有。

我无法避免,因为内存是在模板函数内部动态分配的,该模板函数也可以将类与子类一起使用。因此,我有指向以后需要释放的类的指针。

有什么方法可以禁止显示“ -Wdelete-non-virtual-dtor”警告,并告诉编译器此处没有继承?

1 个答案:

答案 0 :(得分:4)

将类标记为final(从C ++ 11开始)。

那么它就不能拥有子类,因此您不必担心拥有非虚拟析构函数的含义。编译器应该意识到这一点,并禁止显示警告。

参考:https://en.cppreference.com/w/cpp/language/final