Introduzione
La Scelta dei Nomi
Generalita’
La scelta di una lingua
Classi e tipi
Funzioni
Variabili e Costanti
Hungarian ed altre convenzioni
Strutturare i progetti in files
Portabilita’
Ridurre i tempi di compilazione
Directory
Struttura e Layout del Codice
Obiettivi del layout
Macro-layout
Separazioni
Indentazione
Tabulazioni
File header
File implementazione
Micro-layout
Espressioni
Funzioni
Variabili e Costanti
Iterazione e Condizionale
Switch
Classi
Commenti
Costanti
Const o enum?
Incapsulare le costanti
Variabili
Tipi predefiniti
Variabili correlate
Variabili locali
Variabili static
Variabili locali e strutture di controllo
Variabili globali
Classi
Visibilita’: public, protected, private
Costruttori e Distruttori
Distruttori virtuali
Oggetti composti
Costruttori di copia
Ordine di inizializzazione
Costruttori e distruttori inline
Errori a run-time nei costruttori
Membri dato pubblici e protetti
Valori di ritorno
Funzioni Virtuali
Rilassamento sul tipo del risultato
"Super" o "Inherited"
Funzioni membro "const"
Il "problema della cache"
Const e le ottimizzazioni
Overloading degli operatori
Operatori && ed ||
Operatore di assegnazione
Efficienza
Friend
Controllo della derivazione
La Legge di Demeter
Puntatori e Reference
Aritmetica sui puntatori
Delete
Puntatori a puntatori
Smart pointers
Funzioni
Mantenere le funzioni "semplici"
Argomenti ed Interfacce
Asserzioni e programmazione difensiva
Lunghezza delle funzioni
Funzioni Inline
Overloading
Parametri di Default
Oggetti temporanei
Lifetime dei temporanei
Risultati di operatori postfissi
Ereditarieta’
Ereditarieta’ pubblica e privata
Ridefinire funzioni non virtuali
Ereditarieta’ multipla
Ereditarieta’ virtuale
Esempi patologici
Regole semplificate
Template
Dichiarazioni multiple
Dimensioni del codice
Specifica
Casting
L’operatore static_cast
L’operatore const_cast
L’operatore dynamic_cast
L’operatore reinterpret_cast
Cast impliciti
Ambiguita’
Temporanei
Cast di array
Varie
Input/Output
Ouput per una gerarchia di classi
Portabilita’
Brevi note di Design Dettagliato
Ereditarieta’ o Contenimento
Contenimento diretto o tramite puntatori
Static o dynamic typing
Isolamento
Data wrapping
Classi interfaccia
Riepilogo delle raccomandazioni
Bibliografia