C++ C++;虚函数继承 #包括 甲级{ 公众: a(){}; 虚拟~a(){ std::cout

C++ C++;虚函数继承 #包括 甲级{ 公众: a(){}; 虚拟~a(){ std::cout,c++,polymorphism,C++,Polymorphism,即使析构函数未被继承,如果基类声明其析构函数为虚拟,则派生的析构函数始终覆盖它。这使得通过指向基类的指针删除动态分配的多态类型对象成为可能 您可以在中找到更多信息,这是否回答了您的问题?是的,“虚拟性”,不仅在析构函数中是隐式派生的。@胡桃夹子不是,我说的更多的是为什么调用非虚拟和派生析构函数是有意义的。但无论如何,感谢您的资源! #include <iostream> class a{ public: a(){}; virtual ~a(){ std

即使析构函数未被继承,如果基类声明其析构函数为虚拟,则派生的析构函数始终覆盖它。这使得通过指向基类的指针删除动态分配的多态类型对象成为可能


您可以在

中找到更多信息,这是否回答了您的问题?是的,“虚拟性”,不仅在析构函数中是隐式派生的。@胡桃夹子不是,我说的更多的是为什么调用非虚拟和派生析构函数是有意义的。但无论如何,感谢您的资源!
#include <iostream>
class a{
  public:
    a(){};
    virtual ~a(){
      std::cout << "del class a";
    }
};

class b: public a{
  public:
    ~b(){
      std::cout << "del class b";
    } 
};

int main(){

    a *pa;
    pa = new b;
    delete pa;

}