Vai al contenuto
Modulo 2

C++ Orientato agli Oggetti

Classi, oggetti, ereditarietà, polimorfismo e i pilastri dell'OOP in C++.

Classi e Oggetti

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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.