Per sapere tutto ma proprio tutto sulla programmazione ad oggetti ti servono anni!
Perche' di serve un saaaaaaacco di esperienza.
Cosa sai di design patterns? Cerca 'gang of four design patterns'.
E questo e' solo il primo (e
fondamentale, cioe' da conoscere praticamente a memoria ) di una lunga lista di testi sull'argomento
Il concetto di interfaccia e' strettamente legato a quello di classe.
E' solo una questione filosofica e di modellazione:
Meglio una classe astratta o un'interfaccia?
Se vai su Amazon e cerchi 'object oriented programming c++' trovi un sacco di riferimenti.
Ad esempio C++ Primer non e' male: sono
solo 1400 pagine
La suddivisione di un'applicazione (complessa) in un'opportuno insieme di oggetti che interagiscono tra di loro, il tipo di interazione, il tipo di relazione tra gli oggetti (contenimento? collaborazione?), e' una delle parti piu' complesse della progettazione software: non e' facile nemmeno per chi ha n-mila anni di esperienza.
Puoi ben immaginare che scrivere
class C
{
int i;
public:
int get_i() const { return i; }
}
non vuol dire saper programmare ad oggetti!
Per quanto riguarda l'interfaccia grafica, qui' la cosa diventa anche piu' complicata:
ci sono diverse librerie in base al sistema operativo (linux, windows, mac).
Ad esempio per windows ci sono le MFC, per Linux Gnome o Kde, per mac non so.
Qt e' una libreria multipiattaforma.
Sono tutte librerie parecchio complicate, con centinaia di classi, per ogni classe centinaia di metodi, con una complessa struttura gerarchica, che richiedono un tipo di programmazione basata su callback/messaggi (quindi
non ad oggetti).
Richiedono non solo una buona conoscenza del linguaggio, ma anche una buona conoscenza di design patters (il libro di prima).
Nulla di trascendentale, ma comunque, prima di arrivare alle interfacce grafiche, devi avere una ragionevole padronanza del linguaggio. E questo vuol dire conoscere abbastanza bene le 1400 pagine di cui sopra
A si, e tutto questo
in inglese (scordati l'italiano )
E
lascia stare le guide online,
cancella dalla mente il termine online.
Se vuoi minimamente imparare qualcosa, fino a che non hai n-mila anni di esperienza (ma neanche in quel caso), c'e' solo una strada: libri, libri, ed ancora libri. Oppure, in alternativa, oggetti cartacei che si chiamano .... non mi ricordo ... a si:
libri!