子类中的虚方法未调用

时间:2019-07-14 15:37:43

标签: c++

我想定义一个Cleanup方法,当不再使用该对象时将调用该方法。我想从这个基础创建子类,并覆盖Cleanup方法。不幸的是,子类中的方法未调用:

// Example program
#include <iostream>

class A {
public:
    virtual void Cleanup() {
        std::cout << "clean A" << std::endl;
    }

    virtual ~A() {
        Cleanup();
    }
};

class B: public A {
    void Cleanup() override {
        A::Cleanup();
        std::cout << "clean B" << std::endl;
    }
};

int main()
{
  B b;
}

为什么会这样?即使我致电this->Cleanup()

,也会出现此问题

0 个答案:

没有答案