... und ausserdem ist es eine Frage des Programmdesigns. Umsteiger von prozeduralen Sprachen passiert es auch oft, dass sie in C++ oder Java oder anderen objektorientierten Sprachen zunächst verkappte prozedurale Programme schreiben (etwas vereinfacht ausgedrückt: ein class um das prozedurale Programm aussenrum, fertig).
Ich würde auf jeden Fall empfehlen, mit einer objektorientierten Sprache anzufangen, um sich die Denkweise von Grund auf anzugewöhnen. Wenn's rein zu Lernzwecken ist, wäre z.B. Eiffel denkbar, oder gar Sather. Als verbreitetere Sprache würde ich vielleicht Java oder C# empfehlen, C++ ist nicht wirklich einsteigerfreundlich (hat die ganzen Fallstricke von C, und noch eine Menge neue dazu :-)).