Tramite un puntatore a classe base puoi invocare solo i metodi dichiarati nella classe base (eventualmente ridefiniti nella classe derivata). Per invocare un metodo definito solo nella classe derivata da un puntatore a classe base servirebbe il cosiddetto "late binding", che in C++ non esiste; puoi simulare questo comportamento tramite un dynamic_cast a classe derivata.