Возможно ли иметь наследование без виртуальных методов? Компилятор говорит, что следующий код не является полиморфным.
Пример:
class A {
public:
int a;
int getA(){return a;};
}
class B : public A {
public:
int b;
int getB(){return b;};
}
В другом классе мы пытаемся преобразовать объект A
в объект B
:
A *a = ...;
B *b = dynamic_cast<B*>(a)
но это дает следующую ошибку времени компиляции:
cannot dynamic_cast ... (source type is not polymorphic)