Od samego patrzenia na dzialania matematyczne nikt sie jeszcze matematyki nie nauczył, a przynajmniej byłoby to ciezkie. Tak samo z programowaniem. Najlepiej się uczyć poprzez praktykę bo to jedyny sposób br rzeczywiscie rozumieć problemy. Zobacz sobie np. na sfml i zrób jakąś grę użwajac klas abstrakcyjnych, dziedziczenia i funkcji wirtualnych, sam zauwazysz jak bardzo jest to przydatne.