相关疑难解决方法(0)

如果派生中没有数据成员,C++仍然需要Virtual析构函数吗?

假设我有这个代码

class Base{
  public:
        int getVal();
  private:
         int a, b;
};

class Derived::public Base{
    public:
         void printVal();
};

int main(){
    Base *b = new Derived();
    delete b;    
}
Run Code Online (Sandbox Code Playgroud)

我知道虚拟析构函数会正确删除内容,但是使用基指针(没有虚拟析构函数)删除是不好的,即使派生类中没有虚函数也没有数据成员?如果这样做会发生什么?

c++ virtual-destructor

12
推荐指数
2
解决办法
1325
查看次数

标签 统计

c++ ×1

virtual-destructor ×1