【发布时间】:2021-04-13 07:58:44
【问题描述】:
我在每个派生类使用的抽象基类中添加了一个受保护的成员数组,基类的析构函数应该是虚的还是可以的:
**~base(){
delete[] array;
}**
【问题讨论】:
-
抽象基类的析构函数应该总是虚的。
-
为什么是“或”?
delete[]必须在~base()析构函数中,与你要不要virtual无关。 -
不要在现代 C++ 中显式使用
new和delete!使用std::vector、std::unique_ptr、std::shared_ptr和其他类似的 RAII 模式。 -
我们不允许使用 STL 中的任何东西
标签: c++ class inheritance destructor virtual-destructor