Код: Выделить всё
class A {
virtual void vfoo() {}
void foo() {}
virtual ~A() {}
};
class B : public A {
virtual void vfoo() {
MAGIC_CHECK(m_pA->vfoo()); // succeed
// code
m_pA->vfoo();
// code
}
virtual void foo() {
MAGIC_CHECK(m_pA->foo()); // fail compilation because foo is not virtual!
// code
m_pA->foo();
// code
}
A * m_pA;
};
Одним из решений этой проблемы может быть использование флага компиляции -Woverloaded-virtual.
Может ли кто-нибудь предложить решение, которое не будет задействован этот флаг?
Подробнее здесь: https://stackoverflow.com/questions/989 ... as-virtual
Мобильная версия