C++ Manuale di Stile (Edizioni Infomedia)
Sommario del libro


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