Krótka odpowiedź: nie.
Długa odpowiedź: nie ma „prostej drogi”, ponieważ OOP jest daleka od prostej. W programowaniu proceduralnym chodzi o „zmienne” i „jeśli to goto”. Cała reszta to cukier składniowy, ale wszystkie te cztery rzeczy dotyczą programowania proceduralnego. Gdy je zdobędziesz, nic Cię nie powstrzyma.
OOP to sposób organizowania zmiennych i fragmentów kodu. Ile jest wzorów do zdefiniowania OOP? 25? 30? Nawet nauczyciele, którzy nauczyli się OOP z różnych języków i środowisk, nie zgadzają się z własną definicją, więc ... jak to może być proste?
Nie wiem, jak do tego doszedłeś, ale skoro twoja matka ma podobne doświadczenie do mojego, mogę ci powiedzieć, jak do tego doszłam.
Programowałem w C w bardzo dużym projekcie. Był rok 1988. Wielu programistów organizujących moduły i biblioteki, z trudem unikania ingerencji w inne zadania i utrzymywania dobrego podziału obowiązków.
Doszliśmy do „rozwiązania” polegającego na umieszczeniu wszystkich powiązanych globalnych danych w strukturach, umieszczając w tych strukturach pewne wskaźniki funkcji, w których wymagane były wywołania zwrotne. Uogólniliśmy w ten sposób to, co nazwaliśmy io_mask
(rodzaj okien dialogowych w trybie tekstowym) graphic_manager
itp. Itd.
W 1996 r. Bardzo łatwo było odkryć, że struktury te zostały nazwane „klasami”, a wskaźniki funkcji zastąpiono funkcjami składowymi i funkcjami wirtualnymi lub łączami do innych obiektów (zwanymi zachowaniami) przez innych programistów, którzy odnowili ten stary projekt.
Zacząłem rozumieć OOP, kiedy zacząłem odczuwać potrzebę: segregacji, polimorfizmu i zachowań zdefiniowanych w środowisku wykonawczym.
Dzisiaj współpracuję z OOP, ale nie uważam tego za doktrynę, która ma służyć: po prostu „wspólny idiom” (zestaw ...), który pozwala nam rozmawiać razem bez potrzeby ciągłego podawania długich wyjaśnień i opisów . W rzeczywistości bardziej „konwencja” niż cokolwiek innego. W końcu wszystko, co robi OOP, to „ponownie” „jeśli to zrobię”: robi to po prostu „wielowarstwowo”. Stąd abstrakcja i idiomy nad idiomami.
Ignoruj ich. Dopóki nie poczuje ich potrzeby, nawet nie próbuj wyjaśniać: poczuje je jako skomplikowany sposób robienia prostych rzeczy. I ma rację ... dopóki to, co robi, nie jest - w rzeczywistości - proste.
Nikt nie pomyśli o „zorganizowaniu biurka”, jeśli na górze są tylko cztery rzeczy. Ma to sens, gdy rzeczy na wierzchu zaczynają się wzajemnie zakłócać. Nadszedł czas na OOP.
Nie potrzebujesz OOP do pracy z C ++. Cała standardowa biblioteka C ++ nie jest zaprojektowana pod kątem OOP (chociaż może z nią współpracować), a C ++ nie jest Javą.
Z mojego doświadczenia wynika, że najgorszymi nauczycielami C ++ i programistami C ++ są ci, którzy pochodzą z Javy, ucząc ich wszystkich uprzedzeń do wszystkiego, nie jest OOP, denaturuje język taki jak C ++, który nie jest (tylko) dla OOP.
Pozwól, że zasugeruję dobrą książkę dla tych, którzy chcą podejść do C ++: Accelerated C ++ : wprowadzi cię w idiomy C ++ bez udawania, że postępujesz zgodnie ze zdefiniowaną doktryną.