История изменений
Исправление alysnix, (текущая версия) :
class A {
public:
virtual void ff()=0; ///абстрактный метод
void stub(){
ff(); ///тут вызывается ff()
}
virtual ~A(){
stub(); ///тут косвенно вызывается ff. компилятор этого не видит
}
};
class B: public A {
public:
void ff() override {}; ///реализуем ff
};
вот при деструкции B будет вызван абстрактный метод ff от A, поскольку он вызывается в деструкторе A.
Исходная версия alysnix, :
class A {
public:
virtual void ff()=0;
void stub(){
ff(); ///тут вызывается ff()
}
virtual ~A(){
stub(); ///тут косвенно вызывается ff. компилятор этого не видит
}
};
class B: public A {
public:
void ff() override {};
};
вот при деструкции B будет вызван абстрактный метод ff от A