Risposta breve: no.
Risposta lunga: non esiste un "modo semplice" perché OOP è tutt'altro che semplice. La programmazione procedurale riguarda "variabili" e "se poi goto". Tutto il resto è zucchero sintattico, ma queste quattro cose sono tutto ciò che riguarda la programmazione procedurale. Una volta ottenuti, nulla può fermarti.
OOP è un modo per organizzare variabili e pezzi di codice. Quanti schemi ci sono per definire l'OOP? 25? 30? Anche gli insegnanti che hanno imparato l'OOP da lingue e sfondi diversi non sono d'accordo sulla propria definizione, quindi ... come può essere semplice?
Non so come sei arrivato a questo, ma dal momento che tua madre ha un'esperienza simile alla mia, posso dirti come sono arrivato a quello.
Stavo programmando in C in un progetto molto ampio. Era il 1988. Molti programmatori organizzano moduli e biblioteche, con la difficoltà di evitare interferenze in altri lavori e mantenere una buona segregazione dei compiti.
Siamo arrivati a una "soluzione" che consisteva nel mettere tutti i dati globali interconnessi in strutture, inserendo in quelle strutture alcuni puntatori di funzione in cui erano richiesti i callback. Abbiamo generalizzato in questo modo ciò che abbiamo chiamato io_mask
(una sorta di finestre di dialogo in modalità testuale) e graphic_manager
ecc. Ecc.
Nel 1996 è stato facile scoprire che quelle strutture erano denominate "classi" e quei puntatori di funzioni sostituiti dalla funzione membro e dalle funzioni virtuali, o con collegamenti ad altri oggetti (detti comportamenti) da altri programmatori che rinnovavano quel vecchio progetto.
Ho iniziato a capire OOP quando ho iniziato a sentire la necessità di farlo: segregazione, polimorfismo e comportamenti definiti durante il runtime.
Oggi lavoro con OOP, ma non lo considero una dottrina da utilizzare: solo un "linguaggio comune" (insieme di ...) che ci permette di parlare insieme senza la necessità di fornire lunghe spiegazioni e descrizioni tutto il tempo. In realtà, più una "convenzione" che altro. Dopotutto, tutto ciò che OOP fa è -un nuovo- "se poi goto": lo fa semplicemente "multistrato". Di qui l'astrazione e gli idiomi oltre gli idiomi.
Ignorali. Finché non sente che il bisogno per loro non cerca nemmeno di spiegarlo: li sentirà solo come un modo complicato di fare cose semplici. E ha ragione ... finché quello che fa è -in fatto- semplice.
Nessuno penserà a "organizzare una scrivania" se ci sono solo quattro cose in cima. Ha senso quando le cose in cima iniziano a interferire a vicenda. È ora che OOP entri.
Non hai bisogno di OOP per lavorare con C ++. L'intera libreria standard C ++ non è progettata in termini di OOP (sebbene possa cooperare con esso), e C ++ non è Java.
In tutta la mia esperienza i peggiori insegnanti C ++ e programmatori C ++ sono quelli che provengono da Java, insegnando tutti i loro pregiudizi su tutto ciò che non è OOP, denaturando un linguaggio come C ++ che non è (solo) per OOP.
Consentitemi di suggerire un buon libro per coloro che desiderano avvicinarsi al C ++: C ++ accelerato : vi porterà in idiomi C ++ senza fingere di seguire una dottrina predefinita.