C++ Orientato agli Oggetti
Classi, oggetti, ereditarietà, polimorfismo e i pilastri dell'OOP in C++.
Classi e Oggetti
Classi, Struct e Incapsulamento
Comprendi la differenza tra struct e class, gli specificatori di accesso, l'incapsulamento, le funzioni membro const, i membri statici e l'inizializzazione moderna degli aggregati.
Costruttori, Distruttori e Regola dello 0/3/5
Padroneggia l'intero ciclo di vita degli oggetti C++ — dalla costruzione alla distruzione — e impara quando scrivere (o non scrivere) le funzioni membro speciali.
Semantica di Copia: Profonda vs Superficiale
Impara la differenza tra copie superficiali e profonde, come implementare operazioni di copia corrette per le classi che possiedono risorse, e l'idioma copy-and-swap.
Ereditarietà e Polimorfismo
Ereditarietà e Relazioni Is-A
Impara l'ereditarietà pubblica, il concatenamento dei costruttori, il problema dello slicing, l'ereditarietà multipla e il problema del diamante — e quando l'ereditarietà è la scelta giusta.
Funzioni Virtuali, vtable e Polimorfismo
Approfondisci il polimorfismo a runtime: come funziona il dispatch virtuale dietro le quinte, quando usare override e final, le classi astratte e l'RTTI.
Overloading degli Operatori
Impara come sovraccaricare correttamente gli operatori — membro vs non membro, forme canoniche, operatori di stream, l'operatore spaceship del C++20 e le insidie più comuni.
Progettazione OOP
Membri Statici, Singleton e PIMPL
Esplora i membri statici, il pattern Singleton di Meyers, il pattern Factory e l'idioma PIMPL per la stabilità dell'ABI e l'isolamento a tempo di compilazione.
Composizione, Interfacce e Progettazione
Padroneggia la composizione al posto dell'ereditarietà, le interfacce puramente astratte, i principi di progettazione (ISP, DIP), std::variant come alternativa all'ereditarietà e la type erasure.