Risposta breve: no.
Risposta lunga: non esiste un "modo semplice" perché OOP è tutt'altro che semplice. La programmazione procedurale riguarda "variabili" e "if then goto". Tutto il resto è zucchero sintattico, ma quelle 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 OOP? 25? 30? Anche gli insegnanti che hanno imparato OOP da lingue e background diversi non concordano sulla propria definizione, quindi ... come può essere semplice?
Non so come sei arrivato a questo, ma poiché tua madre ha un'esperienza simile alla mia, posso dirti come sono arrivato a quello.
Stavo programmando in C in un progetto molto grande. Era il 1988. Molti programmatori organizzavano moduli e librerie, con la difficoltà di evitare interferenze in altri lavori e di mantenere una buona separazione dei compiti.
Siamo arrivati a una "soluzione" che consisteva nel mettere tutti i dati globali correlati in strutture, mettendo in quelle strutture alcuni puntatori di funzioni in cui erano richiesti callback. In questo modo abbiamo generalizzato ciò che abbiamo chiamato io_mask
(una sorta di finestre di dialogo in modalità testuale) graphic_manager
ecc. Ecc.
Nel 1996 è stato molto facile scoprire che quelle strutture erano chiamate "classi" e quei puntatori di funzione sostituiti da funzioni membro e funzioni virtuali, o con collegamenti ad altri oggetti (chiamati comportamenti) da altri programmatori che rinnovavano quel vecchio progetto.
Ho iniziato a capire OOP quando ho iniziato a sentirne la necessità: segregazione, polimorfismo e comportamenti definiti in fase di esecuzione.
Oggi lavoro con OOP, ma non la considero una dottrina da servire: solo un "linguaggio comune" (set di ...) che ci permette di parlare insieme senza la necessità di fornire spiegazioni e descrizioni lunghe in ogni momento . In effetti, più una "convenzione" che altro. Dopotutto, tutto ciò che OOP fa è -again- "if then goto": lo fa semplicemente "multistrato". Da qui l'astrazione e gli idiomi sugli idiomi.
Ignorali. Fino a quando non sente il bisogno di loro, non prova nemmeno a spiegare: li sentirà come un modo complicato di fare cose semplici. E ha ragione ... fino a quando quello che fa non è, in effetti, semplice.
Nessuno penserà di "organizzare una scrivania" se ci sono solo quattro cose in cima. Ha senso quando le cose in alto iniziano a interferire a vicenda. Questo è il momento per OOP di entrare.
Non è necessario OOP per funzionare con C ++. L'intera libreria standard C ++ non è progettata in termini di OOP (sebbene possa collaborare con essa) e C ++ non è Java.
In tutta la mia esperienza, i peggiori insegnanti di C ++ e programmatori di C ++ sono quelli che provengono da Java, insegnando a tutti i loro pregiudizi su tutto ciò che non è OOP, denaturando un linguaggio come C ++ che non è (solo) per OOP.
Permettetemi di suggerire un buon libro per coloro che vogliono avvicinarsi al C ++: C ++ accelerato : vi porterà nei modi di dire C ++ senza far finta di seguire una dottrina predefinita.