Невозможно выполнить понижающее преобразование, потому что класс не является полиморфным?

Возможно ли наследование без виртуальных методов? Компилятор сообщает, что следующий код не является полиморфным.

Пример:

Class A(){
    int a;
    int getA(){return a;};
}


Class B(): A(){
    int b;
    int getB(){return b;};
}

В другом классе мы пытаемся выполнить понижающее преобразование с объекта A до объекта B :

 A *a;
 B *b = dynamic_cast<B*>(a)

, но это дает следующую ошибку:

 cannot dynamic_cast ... (source type is polymorphic)
43
задан wfbarksdale 12 December 2011 в 04:22
поделиться