Trovato!
L'errore sta nel fatto che non hanno una dichiarazione uguale.. vedi l'override (e non è l'overloading sia chiaro) vuole che le dichiarazioni siano uguali..codice:#include "funzione.h" void stampa(base* p_b) { p_b->uno(); p_b->due(); } void stampa(derivata1* p_d1) { p_d1->uno(); p_d1->due(); }
quindi:
una sola funzione che chiamerà i metodi virtuali uno() e due () a runtime.. capito?codice:#include "funzione.h" void stampa(base* p_b) { p_b->uno(); p_b->due(); }