Mechanizm funkcji wirtualnych pomaga wybrać metodę biorąc pod uwagę rzeczywisty typu obiektu, dla którego daną metodę się woła. Jeżeli istnieje potrzeba wyboru funkcji w zależności od dwóch lub większej ilości typów, to odpowiedni mechanizm musimy dostarczyć sami.