![]() |
|
Editore: Apogeo Pagine: 387 Autore: Deitel & Deitel Collana: PerCorsi di studio Acquistalo a prezzo scontato:
|
Data Pubblicazione: 2001-02-01 ISBN: 8873037313 Prezzo: 25.31 € Lingua: italiano |
Questo libro e' la traduzione dal capitolo 12 al capitolo 21 del titolo "C++ How to Program, Third Edition" dell'editore Prentice Hall. Gli altri capitoli dell'originale in lingua inglese (Cap.1 - Cap.11) sono stati tradotti, sempre da Apogeo, nel libro "C++ Fondamenti di programmazione" (88-7303-670-8).
Harvey M. Deitel e Paul J. Deitel sono i fondatori della Deitel & Associates, una delle più qualificate società di formazione in ambito informatico; i loro manuali dedicati alla programmazione in C, C++ e Java sono utilizzati in tutto il mondo in centinaia di università e scuole di formazione.
Visitate il booksite di questo libro all'indirizzo URL: www.apogeonline.com/education/booksite
Prefazione
Capitolo 1 - I template
Capitolo 2 - La gestione delle eccezioni
Capitolo 3 - L'elaborazione dei file
Capitolo 4 - Le strutture dati
Capitolo 5 - Bit, caratteri, stringhe e strutture
Capitolo 6 - Il preprocessore
Capitolo 7 - Il codice C ereditato
Capitolo 8 - La classe String e l'I/O su Stream tramite stringhe
Capitolo 9 - La libreria standard dei template (STL)
Capitolo 10 - Le nuove funzionalità del C++ previste dallo standard ANSI/ISO
Appendice A - Riepilogo degli operatori
Appendice B - L'insieme dei caratteri ASCII
Appendice C - I sistemi di numerazione
Appendice D - Il C++ su Internet
Indice analitico
Prefazione IX La metodologia di insegnamento IX L'apprendimento attraverso il codice IX L'accesso al World Wide Web IX Obiettivi X Il codice e gli esempi X Figure e immagini X Consigli e suggerimenti X Esercizi di autovalutazione XI Esercizi XI Indice analitico XI Panoramica del libro XII Capitolo 1: I template 1 1.1 Introduzione 1 1.2 I template di funzione 2 1.3 L'overloading delle funzioni di template 5 1.4 I template di classe 6 1.5 I template di classe e i parametri non di tipo 11 1.6 I template e l'ereditarietà 12 1.7 I template e la relazione friend 13 1.8 I template e i membri static 14 Esercizi di autovalutazione 14 Risposte algli esercizi di autovalutazione 15 Esercizi 15 Capitolo 2: La gestione delle eccezioni 17 2.1 Introduzione 17 2.2 Quando utilizzare la gestione delle eccezioni 20 2.3 Altre tecniche di gestione degli errori 20 2.4 Fondamenti della gestione delle eccezioni: try, throw e catch 21 2.5 Esempio di gestione di un'eccezione: la divisione per zero 22 2.6 Lanciare un'eccezione con throw 24 2.7 Intercettare un'eccezione con catch 25 2.8 Rilanciare un'eccezione 29 2.9 Le specifiche di eccezione 31 2.10 La gestione di eccezioni non previste 31 2.11 Il trasferimento del controllo 32 2.12 I costruttori, i distruttori e le eccezioni 33 2.13 Le eccezioni e l'ereditarietà 34 2.14 L'impossibilità di allocare memoria dinamica: gli errori di new 34 2.15 La classe auto_ptr e l'allocazione dinamica della memoria 37 2.16 La gerarchia exception della libreria standard 40 Esercizi di autovalutazione 41 Risposte agli esercizi di autovalutazione 42 Esercizi 43 Capitolo 3: L'elaborazione dei file 45 3.1 Introduzione 45 3.2 La gerarchia dei dati 45 3.3 I file e gli stream 47 3.4 Creazione di un file ad accesso sequenziale 48 3.5 Lettura dei dati da un file sequenziale 52 3.6 L'aggiornamento dei file sequenziali 58 3.7 I file ad accesso casuale 58 3.8 Creazione di un file ad accesso casuale 59 3.9 Scrittura dei dati in ordine casuale in un file ad accesso diretto 61 3.10 Lettura sequenziale dei dati da un file ad accesso casuale 63 3.11 Studio di un caso: un programma d'elaborazione di transazioni 65 3.12 L'input/output di oggetti 70 Esercizi di autovalutazione 71 Risposte agli esercizi di autovalutazione 72 Esercizi 73 Capitolo 4: Le strutture dati 77 4.1 Introduzione 77 4.2 Le classi ricorsive 78 4.3 L'allocazione dinamica della memoria 79 4.4 Le liste concatenate 80 4.5 Gli stack 93 4.6 Le code 97 4.7 Gli alberi 100 Esercizi di autovalutazione 108 Risposte agli esercizi di autovalutazione 108 Esercizi 109 Sezione speciale: costruite il vostro compilatore 115 Primo passaggio 118 Secondo passaggio 120 Un esempio completo 120 Un esame, passo dopo passo, del processo di compilazione 122 Capitolo 5: Bit, caratteri, stringhe e strutture 129 5.1 Introduzione 129 5.2 La definizione di una struttura 130 5.3 L'inizializzazione delle strutture 132 5.4 Strutture e funzioni 132 5.5 Typedef 133 5.6 Esempio: un programma efficiente per mescolare e distribuire un mazzo di carte 133 5.7 Gli operatori a livello di bit 136 5.8 I campi di bit 144 5.9 La libreria per il trattamento dei caratteri 148 5.10 Le funzioni di conversione delle stringhe 153 5.11 Le funzioni di ricerca della libreria di gestione delle stringhe 158 5.12 Le funzioni di manipolazione della memoria presenti nella libreria per il trattamento delle stringhe 162 5.13 Un'ultima funzione della libreria di gestione delle stringhe 166 Esercizi di autovalutazione 167 Risposte agli esercizi di autovalutazione 168 Esercizi 170 Capitolo 6: Il preprocessore 175 6.1 Introduzione 175 6.2 La direttiva del preprocessore #include 175 6.3 La direttiva del preprocessore #define: le costanti simboliche 176 6.4 La direttiva del preprocessore #define: le macro 177 6.5 La compilazione condizionale 178 6.6 Le direttive del preprocessore #error e #pragma 180 6.7 Gli operatori # e ## 180 6.8 Numeri di riga 180 6.9 Le costanti simboliche predefinite 181 6.10 Le asserzioni 181 Esercizi di autovalutazione 182 Risposte agli esercizi di autovalutazione 183 Esercizi 184 Capitolo 7: Il codice C ereditato 185 7.1 Introduzione 185 7.2 Redirezionare l'input/output sui sistemi UNIX e DOS 185 7.3 Gli elenchi variabili di argomenti 186 7.4 Usare gli argomenti della riga di comando 189 7.5 Note sulla compilazione di programmi suddivisi in più file sorgente 190 7.6 Terminazione dei programmi con exit e atexit 192 7.7 Il qualificatore di tipo volatile 193 7.8 I suffissi per le costanti intere e in virgola mobile 194 7.9 La gestione dei segnali 194 7.10 Allocazione dinamica della memoria: le funzioni calloc e realloc 195 7.11 Il salto incondizionato: l'istruzione goto 197 7.12 Le unioni 199 7.13 Le specifiche di linking 202 Esercizi di autovalutazione 203 Risposte agli esercizi di autovalutazione 204 Esercizi 204 Capitolo 8: La classe string e l'I/O su stream tramite stringhe 207 8.1 Introduzione 207 8.2 L'assegnamento e il concatenamento di string 209 8.3 Il confronto di string 211 8.4 Sottostringhe 213 8.5 Lo scambio di due string 214 8.6 Le caratteristiche degli oggetti string 215 8.7 Ricerche di caratteri in una string 217 8.8 Sostituzione di caratteri in una string 219 8.9 L'inserimento di caratteri in una string 221 8.10 La conversione di oggetti string in stringhe di tipo char * 222 8.11 Gli iteratori 224 8.12 L'input/output su stream tramite oggetti string 226 Esercizi di autovalutazione 229 Risposte agli esercizi di autovalutazione 230 Esercizi 230 Capitolo 9: La libreria standard dei template (STL) 233 9.1 Introduzione alla STL 233 9.1.1 Introduzione ai container 236 9.1.2 Introduzione agli iteratori 240 9.1.3 Introduzione agli algoritmi 245 9.2 I container sequenziali 247 9.2.1 Il container sequenziale vector 248 9.2.2 Il container sequenziale list 255 9.2.3 Il container sequenziale deque 259 9.3 I container associativi 262 9.3.1 Il container associativo multiset 262 9.3.2 Il container associativo set 265 9.3.3 Il container associativo multimap 267 9.3.4 Il container associativo map 269 9.4 Adattatori di container 271 9.4.1 L'adattatore stack 271 9.4.2 L'adattatore queue 273 9.4.3 L'adattatore priority_queue 275 9.5 Gli algoritmi 276 9.5.1 fill, fill_n, generate e generate_n 277 9.5.2 equal, mismatch e lexicographical_compare 279 9.5.3 remove, remove_if, remove_copy e remove_copy_if 282 9.5.4 replace, replace_if, replace_copy e replace_copy_if 285 9.5.5 Gli algoritmi numerici 287 9.5.6 Gli algoritmi fondamentali di ordinamento e di ricerca 291 9.5.7 swap, iter_swap e swap_ranges 293 9.5.8 copy_backward, merge, unique e reverse 295 9.5.9 inplace_merge, unique_copy e reverse_copy 298 9.5.10 Le operazioni sugli insiemi 300 9.5.11 lower_bound, upper_bound e equal_range 303 9.5.12 L'algoritmo di ordinamento heapsort 305 9.5.13 min e max 308 9.5.14 Algoritmi non discussi in questo capitolo 309 9.6 La classe bitset 311 9.7 Gli oggetti funzione 315 Esercizi di autovalutazione 318 Risposte agli esercizi di autovalutazione 318 Esercizi 319 Capitolo 10: Le nuove funzionalità del C++ previste dallo Standard ANSI/ISO 321 10.1 Introduzione 321 10.2 Il tipo di dato bool 321 10.3 L'operatore static_cast 323 10.4 L'operatore const_cast 325 10.5 L'operatore reinterpret_cast 326 10.6 Gli spazi dei nomi (namespace) 328 10.7 Le informazioni di tipo a run-time (RTTI) 332 10.8 Le parole chiave operatore 336 10.9 I costruttori explicit 338 10.10 I membri mutable di una classe 342 10.11 I puntatori ai membri di una classe .* e ->* 344 10.12 L'ereditarietà multipla e le classi base virtual 346 Esercizi di autovalutazione 351 Risposte agli esercizi di autovalutazione 351 Esercizi 351 Appendice A: L'insieme dei caratteri ASCII 355 Appendice B: Riepilogo degli operatori 357 Appendice C: I sistemi di numerazione 359 C.1 Introduzione 359 C.2 Usare i numeri ottali ed esadecimali per abbreviare i numeri binari 362 C.3 La conversione dei numeri ottali ed esadecimali in binari 364 C.4 La conversione da binario, ottale o esadecimale in decimale 364 C.5 La conversione da decimale a binario, ottale o esadecimale 365 C.6 I numeri binari negativi: la notazione in complemento a due 366 Esercizi di autovalutazione 368 Risposte agli esercizi di autovalutazione 369 Esercizi 370 Appendice D: Il C++ su Internet 371 D.1 Risorse 371 D.2 Tutorial 371 D.3 FAQ (risposte alle domande più comuni) 372 D.4 comp.lang.c++ 372 D.5 Compilatori 373 D.6 Standard Template Library 374 Tutorial 374 Riferimenti 374 FAQ 374 Articoli, libri e interviste 375 Software 375 Indice analitico 377
Da Java al C++ di INFN
Guida alla programmazione degli alberi in C++ di alessioluffarelli
Imparare C++ in 3 lezioni di INFN
Introduzione al C++ di nicetoad