Não é possível fazer downcast porque a classe não é polimórfica?

É possível ter herança sem métodos virtuais? O compilador está dizendo que o código a seguir não é polimórfic

Exemplo

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


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

Em outra classe, estamos tentando fazer o downcast de umA objeto para umB objeto:

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

mas isso gera o seguinte erro:

 cannot dynamic_cast ... (source type is polymorphic)

questionAnswers(5)

yourAnswerToTheQuestion