class Pracownik{ public: Pracownik(char *nazw) {nazwisko = strdup(nazw);} virtual float podatek(float dochod) {return dochod*0.19;} private: int *wiek; char *nazwisko; }; class Bakier : public Pracownik { // inaczej przeliczany dochod float podatek(float dochod) {return dochod*0.30;} }; class Informatyk : public Pracownik { // jeszcze inaczej przeliczany dochod float podatek(float dochod) {return dochod*0.25;} }; Bankier dyrektor("A"); Bankier kasjer("B"); Informatyk programista("C"); Pracownik *wskaznik; wskaznik = &dyrektor; wskaznik->podatek(100); wskaznik = &kasjer; wskaznik->podatek(100); wskaznik = &programista; wskaznik->podatek(100); Ten virtual float podatek odpowiada za polimorfizm.