Manuali Scontati

Manuali Scontati

Manuali Gratis > Programmazione > C++

Manuale C++ Tecniche avanzate di programmazione

Editore: Apogeo
Pagine: 387
Autore: Deitel & Deitel
Collana: PerCorsi di studio

Acquistalo a prezzo scontato:
Manuali Scontati
Data Pubblicazione: 2001-02-01
ISBN: 8873037313
Prezzo: 25.31 €
Lingua: italiano

Quarta di copertina

I manuali della coppia "Deitel & Deitel" si basano su una formula didattica collaudata ed efficace: una formula i cui ingredienti sono la completezza dei contenuti, la gradualità dell'esposizione, il continuo riferimento a programmi completamente eseguibili e l'attenzione alle problematiche reali che sorgono nell'attività di sviluppo del software. In questo volume gli autori completano la presentazione del linguaggio C++ iniziata con "C++ Fondamenti di programmazione". Si analizzano, in particolare, l'uso dei template (con una trattazione molto dettagliata della libreria standard STL), la gestione delle eccezioni, l'elaborazione dei file, le strutture dati; un capitolo conclusivo presenta le nuove funzionalità previste dallo standard ANSI/ISO.

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



Indice

Indice

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 


MIGLIORA COSTANTEMENTE

Riceverai una sola volta al mese (no spam!) tutti i nuovi manuali e guide pubblicati !
La tua email:


Manuali gratis di C++