|
C++ Manuale di Stile -- Errata Corrige |
Inevitabilmente, ogni edizione di un libro porta con sé
alcuni errori ed imprecisioni. Gran parte delle inesattezze riscontrate
dai lettori e da una mia rilettura sono di carattere squisitamente tipografico
(spazi saltati, discendenti di alcune lettere troncati, eccetera) e sono
state introdotte in fase di impaginazione. Poiché non pregiudicano la
correttezza del testo, ho preferito non riportarle in quanto segue perché
del tutto irrilevanti per la maggior parte dei lettori. Viceversa, nel
libro vi sono 9 errori che vale la pena di far notare, di cui uno decisamente
rilevante (vedere sotto, pagina 206). Come vedrete, non si tratta di errori
gravi, ma in accordo allo spirito di precisione che mi ha portato a scrivere
il libro, ho ritenuto giusto renderli noti ai lettori.
Un ringraziamento va a tutti i lettori che mi hanno segnalato gli errori
riscontrati. Tra questi voglio ricordare Fabio Cavanna e Roberto Romani,
che per primi mi hanno fatto notare alcuni degli errori qui riportati.
Come sempre, vi invito a segnalarmi ogni errore (di qualunque tipo) che
vi capiti di notare nella lettura e nell'uso del libro.
Pag.
16
Nella terzultima riga, "Listato 1" va cambiato in "Listato
2".
Pag.
28, 29, 33, 34
Le guardie di inclusione presenti nei listati (es. __BASE__) contengono un doppio
underscore. Secondo lo standard ANSI/ISO, questo tipo di identificatore è riservato per
l'implementazione. È quindi opportuno sostituire le guardie con identificatori
con un solo underscore finale, es. BASE_.
Pag.
54
La posizione delle parentesi nel secondo "if" del Listato
21é errata:
if( ( ( d * e < f ) || ( g + h < i ) ) && ( a + b < c ) )
dovrebbe essere:
if( ( d * e < f ) || ( ( g + h < i ) && ( a + b < c ) ) )
Pag.
62
Il Listato 32 dovrebbe essere:
int *const s, *t ;
Pag.
93
Manca una parentesi graffa chiusa nel Listato 60:
else
{
....
} <------
Pag.
118
Manca una "n" nel Listato 80, ovvero:
~io_counter() { if( --cout == 0 ) .... }
dovrebbe essere:
~io_counter() { if( --count == 0 ) .... }
Pag.
188
Nell'ultimo paragrafo, O(n)log(n) dovrebbe essere O(n log(n))
Pag.
206
Nel Listato 143, le righe:
Bag* b = &s ; b->add( 1 ) ;
Vanno modificate in:
s.Bag::add( 1 ) ;
Pag.
207
Nel Listato 144, la funzione hasMember dovrebbe essere inline, come
spiegato nel testo soprastante il listato.
Pag.
265
Nel Listato 180, il costruttore di PersonImpl deve ovviamente essere
PersonImpl(), non PersonData() come erroneamente riportato. Inoltre la
dichiarazione della classe PersonData all'inizio del listato è inutile.