| 0.01 | | [collana] |
| 0.02 | | [altri titoli] |
| 0.03 | | [frontespizio] |
| 0.04 | | [colophon] |
| 0.05 | | Indice |
| 0.23 | | Premessa |
| 0.24 | | __ |
| 0.24 | | ____ |
| | | {titolo} |
| 1 | Capitolo 1. | Introduzione e storia del linguaggio C++ |
| 1 | 1.1. | Organizzazione e struttura del testo |
| 2 | 1.2. | Librerie di funzioni e di classi |
| 3 | 1.3. | Il C++ come evoluzione del C |
| 4 | 1.4. | Storia del C++ |
| 5 | 1.5. | Il C++ e gli altri linguaggi |
| 6 | 1.6. | I meccanismi sintattici |
| 8 | 1.7. | Filosofia di progetto |
| 9 | 1.8. | Il C++ nella didattica |
| 10 | Parte I. | Il C++ e la programmazione procedurale |
| 11 | Capitolo 2. | Un primo contatto con il C++ |
| 11 | 2.1. | Premessa |
| 11 | 2.2. | Dichiarazioni di variabili, di tipo e di costanti |
| 11 | 2.2.1. | Dichiarazioni di variabili |
| 12 | 2.2.2. | Dichiarazioni di tipo |
| 12 | 2.2.3. | Dichiarazioni di costanti |
| 12 | 2.3. | Tipi semplici |
| 12 | 2.3.1. | Definizione di un tipo enumerativo |
| 13 | 2.3.2. | Definizione del tipo booleano |
| 13 | 2.4. | Tipo array |
| 13 | 2.4.1. | Definizione di un tipo array monodimensionale |
| 14 | 2.4.2. | Definizione di un tipo array bidimensionale |
| 14 | 2.4.3. | Definizione di un tipo stringa di caratteri |
| 15 | 2.4.4. | Definizione di un tipo struct |
| 15 | 2.5. | Istruzioni semplici |
| 15 | 2.5.1. | Istruzione di assegnazione |
| 16 | 2.5.2. | Chiamata di funzione e definizione di funzione |
| 18 | 2.5.3. | Istruzione goto |
| 18 | 2.6. | Istruzioni strutturate |
| 18 | 2.6.1. | Istruzione composta |
| 19 | 2.6.2. | Istruzioni condizionali (if... then... else, case) |
| 20 | 2.6.3. | Istruzioni iterative (while, do while e for) |
| 21 | 2.7. | Definizioni di puntatori |
| 21 | 2.7.1. | Puntatori a variabili semplici |
| 22 | 2.7.2. | Puntatori e variabili dinamiche |
| 22 | 2.8. | Istruzioni di ingresso/uscita |
| 23 | 2.9. | Le classi del linguaggio C++ |
| 23 | 2.9.1. | Definizione di una specifica di una classe |
| 24 | 2.9.2. | L'utente della classe |
| 24 | 2.10. | Classi derivate |
| 24 | 2.10.1. | Meccanismo base di derivazione |
| 25 | 2.10.2. | Polimorfismo |
| 26 | 2.10.3. | Funzioni e classi modello |
| 27 | 2.11. | Programmi completi: struttura generale ed esempi |
| 30 | Capitolo 3. | Variabili e tipi semplici |
| 30 | 3.1. | Le variabili |
| 30 | 3.1.1. | Definizioni e dichiarazioni |
| 30 | 3.1.2. | Allocazione in memoria della variabile |
| 30 | 3.1.3. | Definizione della variabile |
| 31 | 3.1.4. | Valore iniziale |
| 31 | 3.1.5. | Modalità di allocazione e visibilità intermodulo |
| 31 | 3.1.6. | Ulteriori specifiche di tipo |
| 31 | 3.2. | Le costanti |
| 31 | 3.2.1. | Costanti letterali |
| 32 | 3.2.2. | Costanti con nome |
| 33 | 3.2.3. | Costante simbolica |
| 33 | 3.3. | Classificazione dei tipi del C++ |
| 34 | 3.3.1. | I tipi semplici |
| 34 | 3.3.2. | Il tipo puntatore |
| 34 | 3.3.3. | I tipi strutturati |
| 34 | 3.3.4. | I tipi sottoinsieme |
| 34 | 3.4. | Tipo intero |
| 34 | 3.4.1. | Descrizione |
| 35 | 3.4.2. | Costanti del tipo intero |
| 35 | 3.4.3. | Definizione della variabile di tipo intero |
| 35 | 3.4.4. | Funzioni applicabili al tipo intero |
| 36 | 3.4.5. | Rappresentazione dei valori interi |
| 37 | 3.4.6. | Tipo intero senza segno |
| 37 | 3.5. | Tipo reale |
| 37 | 3.5.1. | Descrizione |
| 37 | 3.5.2. | Uso del tipo reale |
| 37 | 3.5.3. | Costanti del tipo reale |
| 38 | 3.5.4. | Dichiarazione della variabile di tipo reale |
| 38 | 3.5.5. | Funzioni applicabili al tipo reale |
| 38 | 3.5.6. | Altre funzioni definibili sui reali |
| 39 | 3.5.7. | Rappresentazione dei valori reali |
| 39 | 3.6. | Tipo carattere |
| 39 | 3.6.1. | Descrizione |
| 39 | 3.6.2. | Costanti del tipo carattere |
| 40 | 3.6.3. | Dichiarazione della variabile di tipo carattere |
| 40 | 3.6.4. | Rappresentazione dei caratteri |
| 40 | 3.6.5. | Funzioni e predicati per la manipolazione dei caratteri |
| 40 | 3.7. | Tipo ennumerativo |
| 40 | 3.7.1. | Descrizione e dichiarazione |
| 42 | 3.7.2. | Tipo enumerativo anonimo |
| 42 | 3.7.3. | Uso del tipo enumerativo |
| 42 | 3.7.4. | Operatori applicabili al tipo enumerativo |
| 42 | 3.8. | Tipo booleano |
| 42 | 3.8.1. | Descrizione |
| 43 | 3.8.2. | Uso del tipo booleano |
| 43 | 3.8.3. | Definizione del tipo booleano |
| 44 | 3.8.4. | Funzioni applicabili al tipo booleano |
| 44 | 3.9. | Tipo stringa di bit |
| 44 | 3.10. | Relazioi e predicati |
| 44 | 3.10.1. | Descrizione |
| 44 | 3.10.2. | Relazioni e operazioni logiche |
| 45 | 3.11. | Funzioni per la trasformazione di tipo |
| 45 | 3.12. | Rappresentazione dei dati |
| 45 | 3.12.1. | Rappresentazione degli interi |
| 46 | 3.12.2. | Rappresentazione dei reali |
| 48 | 3.12.3. | Rappresentazione dei valori booleani |
| 48 | 3.13. | Costanti letterali |
| 48 | 3.13.1. | Costanti intere ottali ed esadecimali |
| 48 | 3.13.2. | Costanti reali |
| 49 | 3.13.3. | Costante carattere |
| 49 | 3.13.4. | Costante enumerativa |
| 49 | 3.13.5. | Stringa letterale |
| 50 | 3.14. | Identificatori |
| 51 | 3.15. | Riepilogo |
| 52 | Capitolo 4. | I tipi strutturati |
| 52 | 4.1. | Premessa |
| 52 | 4.2. | Il tipo array |
| 52 | 4.2.1. | Descrizione |
| 53 | 4.2.2. | Uso degli array |
| 54 | 4.2.3. | Definizione di array |
| 54 | 4.2.4. | Costruttore di array |
| 54 | 4.2.5. | Array monodimensionale allocato statisticamente |
| 55 | 4.2.6. | Array bidimensionale allocato staticamente |
| 56 | 4.3. | Il tipo record o struttura |
| 56 | 4.3.1. | Descrizione |
| 56 | 4.3.2. | Uso del tipo record |
| 56 | 4.3.3. | Dichiarazione di record |
| 57 | 4.3.4. | Funzioni di accesso al record |
| 57 | 4.3.5. | Operazioni sultipo record |
| 58 | 4.3.6. | Esempi per il tipo record |
| 60 | 4.4. | Il tipo unione |
| 60 | 4.4.1. | Descrizione |
| 60 | 4.4.2. | Dichiarazione del tipo unione e definizione di variabile |
| 61 | 4.4.3. | Unione anonima |
| 61 | 4.4.4. | Unione come record con variante |
| 62 | 4.5. | Dimensioni delle strutture dati in C++ |
| 62 | 4.6. | Riepilogo |
| 64 | Capitolo 5. | Le istruzioni |
| 64 | 5.1. | Classificazione delle istruzioni |
| 64 | 5.2. | Modalità di scrittura |
| 65 | 5.3. | Istruzioni di ingresso e uscita |
| 66 | 5.3.1. | Esempi di istruzioni di ingresso/uscita |
| 67 | 5.4. | Istruzioni di salto (goto) |
| 68 | 5.5. | Il costrutto sequenza |
| 68 | 5.6. | Istruzioni condizionali |
| 68 | 5.6.1. | Istruzione if-then |
| 69 | 5.6.2. | Istruzione if-then-else |
| 70 | 5.6.3. | Selezione multipla mediante il costrutto else-if |
| 70 | 5.6.4. | Istruzione di selezione multipla con costrutto switch-case |
| 71 | 5.6.5. | Esempi di istruzioni condizionali |
| 74 | 5.7. | Costrutti di iterazione |
| 74 | 5.7.1. | Generalità |
| 74 | 5.7.2. | Ciclo a condizione iniziale |
| 75 | 5.7.3. | Ciclo a condizione finale |
| 75 | 5.7.4. | Ciclo a conteggio |
| 76 | 5.7.5. | Forme incomplete del for |
| 76 | 5.7.6. | Ciclo for con blocco vuoto |
| 77 | 5.7.7. | Uso di espressioni multiple |
| 77 | 5.7.8. | Definizione e visibilità della variabile di controllo |
| 77 | 5.7.9. | Esempi di strutture di iterazione |
| 79 | 5.8. | Altri costrutti per il controllo di sequenza |
| 79 | 5.8.1. | Terminazione anticipata di una istruzione strutturata (break) |
| 79 | 5.8.2. | Istruzione di continuazione di un ciclo |
| 80 | 5.8.3. | Cicli indefiniti |
| 80 | 5.9. | Riepilogo |
| 83 | Capitolo 6. | Le espressioni |
| 83 | 6.1. | Sintassi delle espressioni |
| 83 | 6.1.1. | Aspetti generali |
| 84 | 6.1.2. | Notazione utilizzata per gli operatori |
| 84 | 6.1.3. | Precedenza fra gli operatori |
| 85 | 6.1.4. | Associatività degli operatori |
| 86 | 6.1.5. | Valutazione delle espressioni |
| 86 | 6.1.6. | Ambiguità nella valutazione delle espressioni |
| 86 | 6.1.7. | VAlutazione parziale |
| 86 | 6.1.8. | Operatore di assegnazione |
| 87 | 6.2. | Espressioni particolari del C++ |
| 87 | 6.2.1. | Operatori di assegnazione composta |
| 87 | 6.2.2. | Operatori di incremento e decremento in forma prefissa e postfissa |
| 88 | 6.3. | Espressioni miste |
| 88 | 6.3.1. | Esempi di istituzioni di assegnazione |
| 90 | Capitolo 7. | Le funzioni |
| 90 | 7.1. | Premessa |
| 90 | 7.2. | Sottoprogrammi, procedure e funzioni |
| 90 | 7.2.1. | Sottoprogrammi |
| 91 | 7.2.2. | Le funzioni del C++ |
| 91 | 7.2.3. | Definizione e attivazione di una funzione |
| 92 | 7.3. | Parametri della funzione |
| 92 | 7.3.1. | Parametri di ingresso e uscita |
| 92 | 7.3.2. | Modalità di corrispondenza |
| 93 | 7.3.3. | Notazioni per la modalità della corrispondenza |
| 93 | 7.3.4. | Puntatori parametri di scambio |
| 94 | 7.3.5. | Casi particolari |
| 94 | 7.3.6. | Realizzazione dela chiamata di funzione |
| 94 | 7.4. | Programma principale |
| 95 | 7.5. | Esempi di funzioni |
| 98 | 7.6. | Funzioni con argomenti di default |
| 99 | 7.7. | Sovraccarico dei nomi di funzione |
| 101 | 7.8. | Funzioni in linea |
| 102 | 7.9. | Oggetti come parametri di scambio |
| 102 | 7.9.1. | Generalità |
| 102 | 7.9.2. | Oggetto scambiato per riferimento |
| 103 | 7.9.3. | Oggetto scambiato per valore |
| 103 | 7.10. | Oggeto quale valore restituito |
| 104 | 7.10.1. | La funzione restituisce il valore di un oggetto |
| 104 | 7.10.2. | Realizzazioe della restituzione del valore |
| 105 | 7.10.3. | Uso delcostruttore di copia |
| 106 | 7.10.4. | La funzione restituisce il riferimento a un oggetto |
| 108 | 7.10.5. | La funzione restituisce il puntatore a un oggetto |
| 108 | 7.10.6. | Restituzione di un riferimento a un'area allocata dalla funzione |
| 109 | 7.10.7. | Riferimenti e puntatori |
| 110 | 7.11. | Riepilogo |
| 112 | Capitolo 8. | Puntatori e variabili dinamiche |
| 112 | 8.1. | Il tipo puntatore |
| 114 | 8.2. | Puntatori a dati |
| 114 | 8.2.1. | Definizione del tipo e della variabile |
| 114 | 8.2.2. | Puntatori a variabili semplici |
| 115 | 8.2.3. | Operazioni sui puntatori |
| 116 | 8.2.4. | Array di puntatori |
| 116 | 8.2.5. | Puntatori costanti |
| 117 | 8.3. | Puntatori a dati strutturati |
| 118 | 8.3.1. | Puntatori ad array |
| 118 | 8.3.2. | Puntatori all'interno di un array |
| 119 | 8.3.3. | Puntatori relativi all'interno di un array |
| 119 | 8.3.4. | Puntatori assoluti all'interno di un array |
| 121 | 8.3.5. | Puntatore a record |
| 123 | 8.3.6. | Puntatori per il collegamento tra più record |
| 124 | 8.4. | Variabili e strutture dinamiche |
| 124 | 8.4.1. | Generalità |
| 125 | 8.4.2. | Allocazione dinamica di una variabile |
| 125 | 8.4.3. | Allocazione dinamica di un array |
| 125 | 8.4.4. | Allocazzione dinamica di un record |
| 127 | 8.4.5. | Collegamento tra pi record generati dinamicamente |
| 128 | 8.5. | Riepilogo |
| 130 | Capitolo 9. | Puntatori e funzioni |
| 130 | 9.1. | Premessa |
| 130 | 9.2. | Puntatori parametri di scambio |
| 130 | 9.3. | Parametro di tipo puntatore |
| 135 | 9.4. | Valore restituito di tipo puntatore |
| 135 | 9.5. | Argomento e valore restituito di tipo puntatore |
| 137 | 9.6. | Puntatore a void |
| 138 | 9.7. | Puntatori a funzioni |
| 138 | 9.7.1. | Aspetti generali |
| 138 | 9.7.2. | Meccanismi per i puntatori a funzione |
| 140 | 9.8. | Puntatore a funzione come parametro di scambio |
| 143 | 9.9. | Array di puntatori a funzione |
| 144 | 9.10. | Riepilogo |
| 145 | Capitolo 10. | Vettori e matrici |
| 145 | 10.1. | Premessa |
| 145 | 10.2. | Allocazione degli array |
| 145 | 10.2.1. | Allocazione statica |
| 146 | 10.2.2. | Allocazione dinamica |
| 146 | 10.2.3. | Confronto tra allocazione statica e dinamica |
| 146 | 10.3. | Ordinamento degli elementi dell'array |
| 147 | 10.4.1. | Il problema in generale |
| 148 | 10.4.2. | Array monodimensionali |
| 148 | 10.4.3. | Array multidimensionali |
| 149 | 10.4.4. | Array a dimensioni fisse |
| 149 | 10.4.5. | Array a dimensioni adattabili |
| 150 | 10.5. | Controllo degli accessi agli elementi dell'array |
| 151 | 10.6. | Esempi sull'uso degli array |
| 154 | Capitolo 11. | Le stringhe |
| 154 | 11.1. | Il tipo stringa del C++ |
| 154 | 11.1.1. | Descrizione |
| 155 | 11.1.2. | Definizione e iniziializzazione di una stringa |
| 155 | 11.1.3. | Costanti stringhe |
| 156 | 11.2. | Operazioni sulle stringhe |
| 156 | 11.2.1. | Accesso allo i-esimo carattere di una stringa |
| 156 | 11.2.2. | Lettura di una stringa |
| 156 | 11.2.3. | Scrittura di una stringa |
| 157 | 11.2.4. | Assegnazione tra stringhe |
| 157 | 11.2.5. | Concatenazione di stringhe |
| 158 | 11.2.6. | Determinazione della lunghezza della stringa |
| 158 | 11.2.7. | Relazione tra stringhe |
| 158 | 11.2.8. | Ricerca di un carattere in una stringa |
| 159 | 11.2.9. | Accesso a una sottostringa |
| 159 | 11.2.10. | Ricerca di una sottoscritta in una stringa |
| 159 | 11.2.11. | Trasformazione di una stringa in intero e viceversa |
| 159 | 11.2.12. | Allocazione dinamica di una stringa |
| 160 | 11.3. | Realizzazione della libreria string |
| 162 | 11.4. | La classe string per la manipolazione di stringhe |
| 162 | 11.4.1. | Generalità |
| 162 | 11.4.2. | Definizione e inizializzazione di variabili di tipo string |
| 163 | 11.4.3. | Operatori per operazioni su stringhe |
| 163 | 11.4.4. | Altre operazioni realizzate con funzioi membro |
| 164 | Capitolo 12. | Struttura dei programmi |
| 164 | 12.1. | Ciclo di vita dei programmi |
| 165 | 12.2. | Dichiarazioni e definizioni |
| 165 | 12.2.1. | Dichiarazione e definizione di una funzione |
| 166 | 12.2.2. | Dichiarazione e definizione di una variabile |
| 167 | 12.3. | Le unità strutturali di un programma |
| 167 | 12.3.1. | Blocco |
| 168 | 12.3.2. | Funzione |
| 169 | 12.3.3. | File |
| 169 | 12.3.4. | Programma completo |
| 169 | 12.4. | Attributi delle variabili |
| 170 | 12.5. | Visibilità |
| 171 | 12.6. | Tempo di legame |
| 171 | 12.7. | Allocazione della memoria |
| 172 | 12.8. | Ciclo di vita delle variabili |
| 172 | 12.8.1. | Variabili statiche |
| 172 | 12.8.2. | Variabili allocate a stack |
| 173 | 12.8.3. | Variabili dinamiche esplicite |
| 173 | 12.9. | Visibilità intermodulo (linkage) |
| 174 | 12.10. | Variabili globali usate nelle funzioni |
| 175 | 12.11. | Inizializzazione delle variabili |
| 176 | 12.12. | Struttura del programma |
| 177 | 12.12.1. | Variabile definita al livello di un modulo e importata in un altro |
| 177 | 12.12.2. | Variabile definita al livello di un modulo e non esportabile |
| 177 | 12.12.3. | Variabile definita all'interno della funzione main() |
| 178 | 12.12.4. | Variabile definita in una funzione con qualificatore static |
| 178 | 12.12.5. | Variabile allocata e deallocata esplicitamente |
| 178 | 12.13. | Precompilazione del testo origine |
| 179 | 12.13.1. | Inserimento di un file |
| 179 | 12.13.2. | I file di intestazione |
| 179 | 12.13.3. | Sostituzione di stringhe e macro |
| 180 | 12.13.4. | Compilazione condizionale |
| 181 | 12.13.5. | Duplicazione di dichiarazioni e compilazione condizionale |
| 182 | Capitolo 13. | Costruzione e documentazone dei programmi |
| 182 | 13.1. | Meccanismi per la modularizzazione |
| 182 | 13.1.1. | Aspetti concettuali relativi alla modularizzazione |
| 183 | 13.1.2. | Meccanismi offerti dal C++ per la modularizzazione |
| 184 | 13.1.3. | Modalità di documentazione del programma |
| 184 | 13.1.4. | Modalità di documentazione di un singolo modulo |
| 185 | 13.2. | Programma costituito da un unico modulo |
| 185 | 13.2.1. | Struttura |
| 186 | 13.2.2. | Documentazione |
| 187 | 13.3. | Programma costituito da due moduli |
| 187 | 13.3.1. | Caratteristiche generali |
| 187 | 13.3.2. | Struttura del programma |
| 188 | 13.3.3. | Compilazione e collegamento |
| 189 | 13.3.4. | Riusabilità del codice del modulo servente |
| 190 | 13.3.5. | Documentazione |
| 201 | Capitolo 14. | Le stringhe di bit |
| 201 | 14.1. | Il tipo stringa di bit del C++ |
| 201 | 14.1.1. | Rappresentazione delle stringhe di bit |
| 202 | 14.2. | Operazioni sulle stringhe di bit |
| 202 | 14.2.1. | Operazioni e operandi |
| 202 | 14.2.2. | Costanti di tipo stringa di bit |
| 202 | 14.2.3. | Semantica degli operatori logici e di scorrimento |
| 203 | 14.2.4. | Esempi di operazioni |
| 205 | 14.3. | Stringhe di bit memorizzate in una struct |
| 206 | 14.4. | La classe bitset |
| 208 | Parte II. | Il C++ e la programmazione a oggetti |
| 209 | Capitolo 15. | Generalità sulle classi |
| 209 | 15.1. | Le classi |
| 209 | 15.1.1. | Caratteristiche generali |
| 210 | 15.1.2. | Ilsovraccarico dei nomi delle funzioni e degli operatori |
| 210 | 15.1.3. | La genericità |
| 210 | 15.1.4. | L'ereditarietà |
| 211 | 15.1.5. | Il polimorfismo |
| 211 | 15.1.6. | Programmazione a oggetti |
| 211 | 15.1.7. | Le biblioteche e le classi |
| 213 | 15.2. | Produzione e uso della classe |
| 213 | 15.2.1. | Produttore e utente della classe |
| 213 | 15.2.2. | Compilazione e collegamento dei moduli |
| 214 | 15.2.3. | Riusabilità del codice della classe |
| 214 | 15.2.4. | Limiti alla riusabilità in forma chiusa |
| 215 | 15.3. | Specifica e implementazione della classe |
| 215 | 15.3.1. | Struttura della specifica e dell'implementazione |
| 216 | 15.3.2. | Specifica della classe |
| 216 | 15.3.3. | Implementazione della classe |
| 216 | 15.3.4. | L'utente della classe |
| 217 | 15.3.5. | Funzioni membro e oggetto proprio |
| 217 | 15.4. | La specifica come interfaccia |
| 217 | 15.4.1. | Funzionalità offerte dalla specifica |
| 218 | 15.4.2. | Potenzialità e limiti della specifica |
| 218 | 15.4.3. | Variabili membro e attributi della classe |
| 218 | 15.5. | Struttura degli oggetti, costruttori e distruttore |
| 220 | Capitolo 16. | Le classi. Notazioni di base |
| 220 | 16.1. | Dichiarazione della specifica di una classe |
| 222 | 16.2. | Tipologia delle funzioni membro |
| 222 | 16.3. | Costruttori |
| 223 | 16.3.1. | Costruttore con zero argomenti |
| 223 | 16.3.2. | Costruttore di copia |
| 224 | 16.4. | Ciclo di vita degli oggetti e funzione distruttore |
| 225 | 16.5. | Esempi di funzioni costruttore e distruttore |
| 225 | 16.5.1. | Costruttori della classe Complex |
| 227 | 16.5.2. | Costruttori e distruttore per la classe String |
| 229 | 16.6. | Funzioni di accesso e di posizionamento |
| 229 | 16.7. | Funzioni ordinarie operanti sugli oggetti |
| 230 | 16.8. | Accesso ai membri di una classe |
| 230 | 16.8.1. | Accesso da parte del programma utente |
| 230 | 16.8.2. | Accesso da parte di una funzione membro (puntatore this) |
| 231 | 16.9. | Funzioni in linea |
| 232 | 16.10. | Funzioni amiche |
| 232 | 16.10.1. | Funzione amica di una classe |
| 233 | 16.10.2. | Funzione operante su oggetti appartenenti a classi distinte |
| 233 | 16.10.3. | Funzione amica di più classi |
| 234 | 16.10.4. | Relazione di amicizia tra classi |
| 235 | Capitolo 17. | realizzazione di un tipo di dato astratto |
| 235 | 17.1. | Premessa |
| 235 | 17.2. | Progetto della classe Pila |
| 236 | 17.3. | La specifica della classe Pila |
| 238 | 17.4. | Realizzazione della classe Pila |
| 240 | 17.5. | Uso della classe Pila |
| 240 | 17.6. | Altre versioni della libreria e della classe pila |
| 241 | 17.7. | Confronto tra libreria di funzioni e classi |
| 241 | 17.7.1. | Confronto tra le specifiche |
| 242 | 17.7.2. | Confronto tra le realizzazioni |
| 243 | 17.7.3. | Confronto tra i programmi utente |
| 243 | 17.7.4. | Versione della libreria con una struct |
| 245 | 17.7.5. | Versione della libreria con dati dinamici |
| 247 | Capitolo 18. | Dettagli sintattici ee implementativi sulle classi |
| 247 | 18.1. | Operazioni predefinite e definite dal progettista |
| 249 | 18.2. | Oggetti o componenti costanti |
| 249 | 18.2.1. | Oggetti costanti |
| 249 | 18.2.2. | Oggetti con componenti costanti |
| 250 | 18.3. | Oggetti costanti e componenti modificabili |
| 250 | 18.3.1. | Qualificatore mutable |
| 250 | 18.3.2. | Operatore di conversione const_cast |
| 251 | 18.4. | Variabili, funzioni membro e costanti statiche |
| 251 | 18.4.1. | Variabili membro statiche |
| 251 | 18.4.2. | Funzioni membro statiche |
| 253 | 18.4.3. | Costanti statiche |
| 254 | 18.5. | Relazioni tra classi, strutture e unioni |
| 254 | 18.5.1. | Classi e strutture |
| 255 | 18.5.2. | Classi e unioni |
| 255 | 18.6. | Contenimento di classi (aggregazione) |
| 257 | 18.7. | Domini di visibilità delle classi |
| 257 | 18.7.1. | Dichiarazioni ausiliarie per le classi |
| 257 | 18.7.2. | Classi annidate |
| 259 | 18.8. | Funzioni membro ricorsive |
| 259 | 18.9. | Array di oggetti |
| 260 | 18.10. | Oggetti con estensione allocati in area heap |
| 261 | 18.11. | Puntatori a membri .* e ->* |
| 261 | 18.11.1. | Puntatori a variabili membro |
| 262 | 18.11.2. | Puntatori a funzioni membro |
| 264 | Capitolo 19. | Ridefinizione degli operatori |
| 264 | 19.1. | Premessa |
| 264 | 19.2. | Funzioni operatore |
| 267 | 19.3. | Regole per la ridefinizione degli operatori |
| 270 | 19.4. | Ridefinizione di operatori specifici |
| 270 | 19.4.1. | Operatore di assegnazione |
| 272 | 19.4.2. | Operatori di incremento e decremento |
| 272 | 19.4.3. | Operatori di idicizzazione |
| 273 | 19.4.4. | Operatore & |
| 273 | 19.4.5. | Operatore virgola |
| 274 | 19.4.6. | Operatore di ichiamata di funzione |
| 274 | 19.4.7. | Operatore ! |
| 276 | 19.4.8. | Operatori di shift << e >>< |
| 276 | 19.4.9. | Operatore -> |
| 277 | 19.4.10. | Operatore [] con dimensioni multiple |
| 278 | 19.4.11. | Operatori new e delete |
| 279 | 19.4.12. | Operatore di conversione |
| 280 | Capitolo 20. | Ereditarietà: aspetti generali |
| 280 | 20.1. | Motivazioni per l'ereditarietà |
| 280 | 20.1.1. | L'ereditarietà nella progettazione del software |
| 281 | 20.1.2. | L'ereditarietà quale strumento per il riuso del software |
| 281 | 20.1.3. | L'ereditarietà nei linguaggi di programmazione |
| 282 | 20.2. | Le classi derivate nel C++: aspetti generali |
| 282 | 20.2.1. | Meccanismo base di derivazione |
| 282 | 20.2.2. | Meccanismo di accesso |
| 282 | 20.2.3. | Meccanismo di derivazione |
| 282 | 20.2.3. | |
| 282 | 20.2.4. | Polimorfismo |
| 283 | 20.2.5. | Derivazione multipla |
| 283 | 20.3. | I meccanismi sintattici per la derivazione |
| 283 | 20.3.1. | Struttura della classe derivata |
| 286 | 20.4. | Meccanismi e diritti di accesso |
| 286 | 20.4.1. | Aspetti generali |
| 286 | 20.4.2. | Accesso delle funzioni membro e funzioni utente |
| 289 | 20.4.3. | Uso della gerarchia di derivazione |
| 290 | 20.4.4. | Overriding e overloading |
| 291 | 20.4.5. | Modalità di derivazione privata |
| 292 | 20.5. | Ampliamento dei meccanismi di protezione e di derivazione |
| 294 | 20.6. | Meccanismi generali di protezione e di derivazione |
| 294 | 20.6.1. | Trasmissione dei diritti di accesso |
| 296 | 20.6.2. | Meccanismi selettivi di derivazione |
| 297 | 20.6.3. | Funzioni o classi amiche nella derivazione |
| 297 | 20.7. | Un esempio di gerarchia di derivazione |
| 297 | 20.7.1. | Esempio base |
| 301 | 20.7.2. | Una variante all'esempio base |
| 303 | Capitolo 21. | Gerarchie di classi |
| 303 | 21.1. | Struttura della gerarchia di classi |
| 304 | 21.1.1. | Derivazione pubblica e privata, la classe Lista |
| 308 | 21.1.2. | Riuso con riduzione delle funzionalità |
| 309 | 21.2. | Costruttori e distruttori nella gerarchia di derivazione |
| 309 | 21.2.1. | Costruttori |
| 311 | 21.2.2. | Distruttore |
| 311 | 21.2.3. | Costruttore di copia nella classe derivata |
| 312 | 21.2.4. | Operatore di assegnazione |
| 313 | 21.3. | Compatibilità tra classe base e classi derivate |
| 316 | 21.4. | Alterazione dei meccanismi di accesso |
| 316 | 21.4. | |
| 318 | Capitolo 22. | Polimorfismo |
| 318 | 22.1. | Premessa |
| 319 | 22.2. | Motivazioni per il polimorfismo |
| 322 | 22.3. | Meccanismi sintattici per il polimorfismo |
| 322 | 22.4. | Un esempio di gerarchia di derivazione con funzioni virtuali |
| 323 | 22.5. | Funzioni virtuali pure e classi astratte |
| 323 | 22.6. | Costruttori e distruttori in classi polimorfe |
| 323 | 22.6.1. | Chiamata di costruttori e distruttori |
| 324 | 22.6.2. | Polimorfismo all'interno di costruttori e distruttori |
| 325 | 22.7. | Unn esempio di progetto: la classe Figura |
| 325 | 22.7.1. | Aspetti generali del progetto |
| 325 | 22.7.2. | Notazioni disponibili all'utente della classe Figura |
| 328 | 22.7.3. | Dichiarazione della gerarchia di classi Figura |
| 333 | 22.8. | Compilazione e collegamento delle classi derivate |
| 333 | 22.9. | Struttura della gerarchia di classi |
| 333 | 22.9.1. | Funzioni associate alle classi |
| 334 | 22.9.2. | Accesso alle funzioni membro della gerarchia |
| 334 | 22.9.3. | Un esempio di gerarchia di derivazione |
| 335 | 22.9.4. | Tabelle dei metodi |
| 337 | 22.9.5. | Attivazione delle funzioni membro |
| 339 | Capitolo 23. | Derivazione multipla |
| 339 | 23.1. | Premessa |
| 339 | 23.2. | Derivazione multiplada classi indipendenti |
| 343 | 23.3. | Derivazione multiplada classi collegate |
| 346 | 23.4. | Derivazione virtuale |
| 346 | 23.4.1. | Aspetti sintattici |
| 347 | 23.4.2. | Realizzazione della derivazione virtuale |
| 348 | 23.5. | Costruttori e distruttori nella derivazione multipla |
| 351 | 23.6. | Un esempio di gerarchiadiderivazione |
| 355 | Capitolo 24. | Funzioni e classi generiche |
| 355 | 24.1. | Motivazioni per la genericità |
| 356 | 24.2. | Funzioni modello |
| 356 | 24.2.1. | Definizione delle funzioni modello |
| 356 | 24.2.2. | Istanziazione di una funzione modello |
| 357 | 24.2.3. | Reallizzazione delmeccanismo delle funzioni modello |
| 358 | 24.2.4. | Funzioni modello con più parametri tipo |
| 359 | 24.2.5. | Differenza tra funzioni sovraccariche e funzioni modello |
| 360 | 24.2.6. | Un approfondimento sulla struttura delle funzioni modello |
| 360 | 24.3. | Classi modello |
| 360 | 24.3.1. | Specifica della classe modello |
| 361 | 24.3.2. | Implementazione della classe modello |
| 361 | 24.3.3. | Specializzazione della classe modello |
| 362 | 24.3.4. | Realizzazione del meccanismo delle classi modello |
| 362 | 24.3.5. | Modalità di preparazione della classe modello |
| 365 | 24.3.6. | Classi modello con parametri-tipo e parametri-variabile |
| 367 | 24.3.7. | Funzioni modello e classi modello |
| 368 | 24.3.8. | Funzioni membro con parametri-tipo |
| 369 | 24.3.9. | Classi modello con parametri di default |
| 370 | 24.4. | Relazioni di amicizia tra modelli |
| 371 | 24.5. | Esempi di classi modello |
| 373 | Capitolo 25. | Meccanismi di incapsulamento: namespace |
| 373 | 25.1. | Classi di identificatori |
| 374 | 25.2. | Controllo dello spazio dei nomi: namespace |
| 374 | 25.2.1. | Inquinamento dello spazio dei nomi |
| 375 | 25.2.2. | La dichiarazione namespace |
| 376 | 25.2.3. | Accesso allo spazio dei nomi |
| 377 | 25.2.4. | Esempi di impiego del namespace |
| 378 | 25.3. | Il namespace come interfaccia |
| 378 | 25.3.1. | Composizione e selezione dello spazio dei nomi |
| 378 | 25.3.2. | Dichiarazione di un'interfaccia per una libreria |
| 379 | 25.3.3. | Composizione dello spazio dei nomi |
| 381 | 25.3.4. | Adeguamento della libreria standard al namespace |
| 382 | 25.4. | Spazio dei nomi anonimo, namespace sinonimi |
| 382 | 25.4.1. | Spazio dei nomi anonimo |
| 383 | 25.4.2. | Namespace sinonimi |
| 384 | Capitolo 26. | Conversioni di tipo |
| 384 | 26.1. | Conversioni di tipo nel C++ |
| 385 | 26.2. | Operatori per la conversione di tipo |
| 385 | 26.2.1. | Aspetti generali |
| 386 | 26.2.2. | Operatore di conversione static_cast |
| 387 | 26.2.3. | Operatore reinterpret_cast |
| 387 | 26.2.4. | Operatore dynamic_cast |
| 388 | 26.2.5. | Operatore typeid per l'accesso al tipo di un oggetto |
| 389 | 26.2.6. | Operatore const_cast |
| 389 | 26.3. | Espressioni aritmetiche miste e assegnazione |
| 391 | 26.3.1. | Aspetti generali |
| 390 | 26.3.2. | Promozione delle variabili |
| 391 | 26.3.3. | Operazione di assegnazione |
| 391 | 26.4. | Conversioni di tipo per oggetti di tipo classe |
| 391 | 26.4.1. | Aspetti generali |
| 393 | 26.4.2. | Conversione mediante costruttori |
| 394 | 26.4.3. | Operatori di conversione di tipo |
| 395 | 26.4.4. | Riepilogo dei meccanismi di conversione |
| 397 | 26.5. | Risoluzione delle chiamate di funzioni sovrapposte |
| 398 | 26.6. | Risoluzione delle chiamate di operatori sovrapposti |
| 399 | 26.7. | Tipo dei letterali |
| 400 | Parte III. | La libreria standard del C++ |
| 401 | Capitolo 27. | La libreria iostream per le operazioni di I/O |
| 401 | 27.1. | Premessa |
| 401 | 27.2. | La libreria standard del C++ |
| 401 | 27.3. | La libreria di classi per l'I/O |
| 401 | 27.3.1. | Aspetti generali |
| 402 | 27.3.2. | La gerarchia di classi di I/O |
| 403 | 27.3.3. | Stream di testo e binari |
| 403 | 27.4.1. | I/O primario in generale |
| 404 | 27.4.2. | Le classi istream e ostream |
| 404 | 27.4.3. | Gli stream standard cin e cout |
| 405 | 27.5. | Operazione di lettura da file standard di ingresso |
| 407 | 27.6. | Operazione di scrittura su file standard di uscita |
| 408 | 27.7. | I/O per tipi definitivi dall'utente |
| 409 | 27.8. | Operazioni di ingresso e uscita con formato |
| 409 | 27.8.1. | Funioni per il controllo del formato |
| 410 | 27.8.2. | Indicatori di formato |
| 411 | 27.9. | Manipolatori senza argomento |
| 411 | 27.9.1. | Uso dei manipolatori senza argomento |
| 413 | 27.9.2. | Realizzazione dei manipolatori senza argomento |
| 413 | 27.10. | Manipolatori con un argomento |
| 413 | 27.10.1. | Uso dei manipolatoricon un argomento |
| 413 | 27.10.2. | Realizzazione dei manipolatori con un argomento |
| 415 | 27.11. | Gestione dello stato dello stream |
| 417 | Capitolo 28. | Operazioni I/O verso le memorie di massa |
| 417 | 28.1. | Collegamenti con il sistema operativo. Apertura e chiusura |
| 417 | 28.1.1. | Generalità |
| 418 | 28.1.2. | Apertura e chiusura dei file |
| 418 | 28.1.3. | Specifica delle operazioni da compiere |
| 421 | 28.2. | Input e output |
| 422 | 28.2.1. | Operazioni per file ad accesso diretto |
| | 28.2.2. | - |
| 423 | 28.2.3. | Controllo di errore |
| 424 | 28.3. | Generazione e ispezione di un file sequenziale |
| 424 | 28.3.1. | Processo di generazione di un file sequenziale |
| 425 | 28.3.2. | Processo di ispezione di un file sequenziale |
| 427 | 28.3.3. | Copia di file |
| 429 | 28.4. | Generazione e uso di file ad accesso diretto |
| 429 | 28.4.1. | Generalità |
| 429 | 28.4.2. | Processo di generazione casuale di un file |
| 431 | 28.4.3. | Processo di ispezione casuale di un file |
| 432 | 28.4.4. | Processo di aggiornamento casuale di un file |
| 433 | 28.5. | Le stringhe per le operazioni di ingresso/uscita |
| 435 | 28.6. | Interfacciamento verso il sistema operativo |
| 435 | 28.6.1. | Operazioni eseguite dalla classe streambuf |
| 436 | 28.7. | Collegamento tra stream |
| 436 | 28.8. | La libreria stdio del linguaggio C |
| 436 | 28.8.1. | La libreria stdio e iostream |
| 437 | 28.8.2. | La libreria stdio: generalità |
| 437 | 28.8.3. | Operazioni su file |
| 443 | Capitolo 29. | STL: la libreria standard con classi modello |
| 443 | 29.1. | Aspetti generali |
| 444 | 29.2. | Contenitori |
| 444 | 29.2.1. | Contenitori di sequenza di prima classe |
| 445 | 29.2.2. | Contenitori con adattatori |
| 445 | 29.2.3. | Quasi contenitori |
| 447 | 29.2.4. | Aspetti implementativi |
| 448 | 29.2.5. | Operazioni applicabili ai contenitori |
| 448 | 29.3. | Iteratori |
| 452 | 29.4. | Algoritmi generici operanti sui contenitori |
| 452 | 29.5. | Funzioni oggetto |
| 452 | 29.5.1. | Scopo e struttura delle funzioni oggetto |
| 453 | 29.5.2. | Esempi relativi alle funzioni oggetto |
| 456 | Capitolo 30. | Le classi contenitore |
| 456 | 30.1. | La classe vector |
| 457 | 30.1.1. | Principali funzioni della classe vector |
| 459 | 30.1.2. | Esempi di operazioni sulla classe vector |
| 459 | 30.2. | La classe deque |
| 460 | 30.2.1. | Principali funzioni della classe deque |
| 461 | 30.2.2. | Esempi di operazioni sulla classe deque |
| 461 | 30.3. | La classe list |
| 462 | 30.3.1. | Principali funzioni della classe list |
| 464 | 30.3.2. | Esempi di operazioni sulla classe list |
| 464 | 30.4. | La classe set |
| 465 | 30.4.1. | Principali funioni della classe set |
| 467 | 30.4.2. | Esempi di operazioni sulla classe set |
| 467 | 30.5. | La classe multiset |
| 467 | 30.5.1. | Principali funzioni della classe multiset |
| 469 | 30.5.2. | Esempi di operazioni sulla classe multiset |
| 469 | 30.6. | La classe map |
| 470 | 30.6.1. | Principali funzioni della classe map |
| 471 | 30.6.2. | Esempi di operazioni sulla classe map |
| 472 | 30.7. | La classe multimap |
| 472 | 30.7.1. | Principali funzioni della classe multimap |
| 474 | 30.7.2. | Esempi di operazioni sulla classe multimap |
| 474 | 30.8. | La classe stack adattatore delle classi contenitore |
| 475 | 30.8.1. | Principali funioni della classe stack |
| 475 | 30.8.2. | Esempi di operazioni sulla classe stack |
| 476 | 30.9. | La classe queue adattatore delle classi conntenitore |
| 476 | 30.9.1. | Principali funzioni della classe queue |
| 477 | 30.9.2. | Esempi di operazioni sulla classe queue |
| 477 | 30.10. | La classe priority_queue adattatore delle classi contenitore |
| 478 | 30.10.1. | Principali funzioni della classe priority_queue |
| 478 | 30.10.2. | Esempi di operazioni sulla classe priority_queue |
| 479 | Capitolo 31. | Gli algoritmi generici |
| 479 | 31.1. | Classificazione degli algoritmi generici |
| 479 | 31.2. | Algoritmi che non modificano la sequenza degli elementi |
| 481 | 31.3. | Algoritmi che modificano la sequenza degli elementi |
| 485 | 31.4. | Algoritmi di ordinamento |
| 491 | 31.5. | Algoritmi numerici generalizzatori |
| 494 | Parte IV. | La progettazione a oggetti |
| 495 | Capitolo 32. | Il linguaggio di modellizzazione a oggetti UML |
| 495 | 32.1. | Premessa |
| 495 | 32.2. | Sviluppo orientato agli oggetti |
| 495 | 32.2.1. | Modelli orientati agli oggetti |
| 496 | 32.2.2. | Analisi, progetto e programmazione a oggetti |
| 497 | 32.3. | OOA: realizzazione di un modello statico |
| 497 | 32.3.1. | Identificazione degli oggetti |
| 498 | 32.3.2. | Classificazione |
| 498 | 32.4. | Il linguaggio UML |
| 498 | 32.4.1. | Cenni storici |
| 498 | 32.4.2. | Scopi di UML |
| 499 | 32.5. | Diagrammi dei casi d'uso |
| 499 | 32.5.1. | Diagramma dei casi d'uso: semantica |
| 500 | 32.5.2. | Diagramma dei casi d'uso |
| 500 | 32.5.3. | Casi d'uso e cicli di vita |
| 501 | 32.5.4. | Scenari |
| 502 | 32.6. | Diagramma delle classi |
| 502 | 32.6.1. | Diagramma delle classi: semantica |
| 502 | 32.6.2. | Diagrammi delle classi d'uso: sintassi |
| 504 | 32.6.3. | Attributi e metodi |
| 504 | 32.6.4. | Visibilità di attributi e metodi |
| 505 | 32.6.5. | Il package |
| 506 | 32.7. | Relazioni tra Classi&Oggetti |
| 506 | 32.7.1. | Le relazioni in generale |
| 506 | 32.7.2. | Generalizzazione-specializzazione |
| 507 | 32.7.3. | Aggregazione |
| 508 | 32.7.4. | Associazione |
| 512 | 32.7.5. | Asserzioni relative ai metodi delle classi |
| 513 | Capitolo 33. | UML: aspetti dinamici del modello |
| 513 | 33.1. | Premessa |
| 513 | 33.2. | Diagrammi di interazione |
| 513 | 33.2.1. | Dinamiche inter-oggetto: i diagrammi di interazione |
| 514 | 33.2.2. | I diagrammi di sequenza |
| 515 | 33.2.3. | I diagrammi di collaborazione |
| 516 | 33.3. | Diagrammi di attività |
| 516 | 33.3.1. | Diagramma di attività: semantica |
| 517 | 33.3.2. | Diagramma di attività: sintassi |
| 519 | 33.4. | Diagrammi di stato |
| 519 | 33.4.1. | Diagramma di stato: semantica |
| 519 | 33.4.2. | Diagramma di stato: sintassi |
| 520 | 33.5. | Diagrammi di implementazione |
| 521 | 33.5.1. | Diagramma dei componenti |
| 522 | 33.5.2. | Diagramma di allocazione |
| 524 | Capitolo 34. | Da UML a C++ |
| 524 | 34.1. | Premessa |
| 524 | 34.2. | Modelli a oggetti statici e dinamici |
| 524 | 34.2.1. | Modello statico: relazioni tra classi |
| 525 | 34.2.2. | Modello dinamico: diagrammi di interazione |
| 525 | 34.3. | Gerarchia di generalizzazione-specializzazione |
| 525 | 34.3.1. | Organizzazione della gerarchia |
| 526 | 34.3.2. | Il ruolo del polimorfismo nella progettazione |
| 527 | 34.4. | Contenimento tra classi (aggregazione) |
| 527 | 34.4.1. | Realizzazione del contenimento lasco |
| 528 | 34.4.2. | Realizzazione del contenimento stretto |
| 529 | 34.4.3. | Un esempio di aggregazione tra classi |
| 531 | 34.5. | Associazione tra classi |
| 531 | 34.5.1. | Associazione uno a uno |
| 533 | 34.5.2. | Associazione uno a molti |
| 533 | 34.5.3. | Un esempio di associazione tra classi |
| 535 | 34.6. | Interazioni dinamiche tra oggetti |
| 537 | Capitolo 35. | Sviluppo di un progetto completo |
| 537 | 35.1. | Premessa |
| 537 | 35.2. | Analisi orientata agli oggetti (OOA) |
| 537 | 35.2.1. | Requisiti informali di utente |
| 537 | 35.2.2. | Analisi dei requisiti di utente: diagramma dei casi d'uso |
| 541 | 35.3. | Gli oggetti di dominio |
| 544 | 35.4. | Problematiche di interfacciamento |
| 546 | 35.5. | Progetto orientato agli oggetti (OOD) |
| 550 | 35.6. | OOP, specifica di basso livello e implementazione |
| 550 | 35.6.1. | Specifica Dipendente |
| 551 | 35.6.2. | Specifica Agente |
| 552 | 35.6.3. | Specifica Dirigente |
| 552 | 35.6.4. | Specifica Ordinario |
| 553 | 35.6.5. | Specifica Missione |
| 553 | 35.6.6. | Specifica Contratto |
| 553 | 35.6.7. | Implementazione di Dipendente |
| 554 | 35.6.8. | Implementazione di Dirigente |
| 555 | 35.6.9. | Implementazione di Agente |
| 555 | 35.6.10. | Implementazione di Missione |
| 556 | 35.6.11. | Implementazione di Contratto |
| 556 | 35.6.12. | Esempio Gestione Dipendenti |
| 559 | Parte V. | Libreria di programmi di C++ |
| 560 | Capitolo 36. | Semplici programmi completi |
| 560 | 36.1. | Calcolo della somma |
| 561 | 36.2. | Calcolo del tasso di inflazione |
| 562 | 36.3. | Minimo fra due interi |
| 562 | 36.4. | Massimo fra tre interi |
| 563 | 36.5. | Calcolo di xn |
| 564 | 36.6. | Calcolo della serie armonica |
| 565 | 36.7. | Stampa tabella triangolare |
| 566 | 36.8. | Valore medio di una lista (numero di elementi dato) |
| 566 | 36.9. | Valore medio di una lista (uso di un valore tappo) |
| 567 | 36.10. | Massimo e minimo inn una sequenza |
| 569 | Capitolo 37. | Algoritmi numerici |
| 569 | 37.1. | Calcolo di n! |
| 570 | 37.2. | Calcolo della radice uadrata di x |
| 571 | 37.3. | Calcolo dei quadrati dei numeri interi |
| 571 | 37.4. | Calcolo degli zeri di f(x): metodo di bisezione |
| 573 | 37.5. | Calcolo degli zeri di f(x): metodo dello scandaglio |
| 575 | 37.6. | Calcolo degli zeri di f(x): metodo di Newton-Raphson |
| 577 | 37.7. | Calcolo dell'integrale definito con metodo di Eulero e precisione assegnata |
| 579 | 37.8. | Calcolo dell'integrale definito con metodo di Simpson e precisione assegnata |
| 581 | 37.9. | Risoluzione di unn sistema di equazioni lineari (metodo di Gauss-Jordan) |
| 584 | 37.10. | Risoluzione di un sistema di equazioni lineari (metodo di Gauss-Seidel) |
| 588 | 37.11. | Risoluzione di un istema di equazioni differenziali (metodi di Eulero e Runge-Kutta) |
| 590 | 37.12. | Libreria associata al programma SEDRKE |
| 593 | Capitolo 38. | Schemi di programmi e programmi completi |
| 593 | 38.1. | Schema a menu a un livello |
| 596 | 38.2. | Schema menu a due livelli |
| 599 | 38.3. | Libreria per lettura e stampa di una matrice |
| 601 | 38.4. | Simulazione di una lista di attesa |
| 605 | 38.5. | Analisi rete elettrica in corrente continua |
| 608 | 38.6. | Calcolo del valore di un polinomio |
| 610 | Capitolo 39. | Algoritmi di ricerca e ordinamento |
| 610 | 39.1. | Libreria ricerca elemento in un array |
| 611 | 39.2. | Libreria per l'ordinamento di una lista |
| 616 | 39.3. | Fusione di due vettori |
| 617 | 39.4. | Fusione di due file |
| 618 | 39.5. | Distribuzione di un file |
| 619 | 39.6. | Ordinamento per distribuzione e fusione |
| 621 | Capitolo 40. | Strutture dati |
| 621 | 40.1. | Libreria per il trattamento della pila |
| 622 | 40.1.1. | PILASL.1: libreria per la gestione di una pila realizzata con un array |
| 624 | 40.1.2. | PILASL2: libreria per la gestione di una pila con array e struct |
| 626 | 40.1.3. | PILADL: gestione pila con lista dinamica |
| 628 | 40.1.4. | Programma USALIBRERIAPILA |
| 630 | 40.2. | Libreria per il trattamento della coda |
| 630 | 40.2.1. | CODASL: libreria gestione coda con array |
| 633 | 40.2.2. | CODADL: libreria per la gestione di una coda realizzata con una struttura dati dinamica |
| 635 | 40.2.3. | Programma USA LIBRERIA CODA |
| 636 | 40.3. | Libreria per il trattamento della lista |
| 637 | 40.3.1. | LISTASL: libreria per la gestione di una lista concatenata realizzata con un array |
| 641 | 40.3.2. | LISTADL: libreria per la gestione di una lista concatenata realizzata con ua struttura dati dinamica |
| 644 | 40.3.3. | Programma USALIBRERIALISTA |
| 646 | 40.4. | Libreriaperiltrattamento dell'albero |
| 647 | 40.4.1. | AlberoL: libreria per la gestione di un albero |
| 651 | 40.4.2. | Programma USAALBERO |
| 653 | 40.5. | Libreria per il trattamento di una tabella |
| 653 | 40.5.1. | TABSL: tabella realizzatacon un array |
| 656 | 40.5.2. | TABDL: libreria per manipolare tabelle con liste di tipo dinamico |
| 659 | 40.5.3. | Programma uso libreria tabella |
| 662 | Parte VI. | Libreria di classiin C++ |
| 663 | Capitolo 41. | Strutture dati realizzate con classi |
| 663 | 41.1. | Classe Pila peril trattamento della pila |
| 663 | 41.1.1. | Classe Pila con array statico |
| 665 | 41.1.2. | Classe Pila con lista dinamica |
| 666 | 41.1.3. | Programma per l'uso della classe Pila |
| 667 | 41.1.4. | Classe modello Pila con array |
| 668 | 41.1.5. | Programma per l'uso della classe modello Pila |
| 669 | 41.1.6. | Classe modello Pila con struttura dinamica |
| 670 | 41.2. | Classe Coda per il trattamento della coda |
| 671 | 41.2.1. | Classe Coda co struttura dati di tipo statico |
| 673 | 41.2.2. | Classe Coda con struttura dati dinamica |
| 675 | 41.2.3. | Programma per l'uso della classe Coda |
| 676 | 41.3. | Classe Lista ordinata |
| 677 | 41.3.1. | Classe Lista ordinata con array di tipo statico |
| 680 | 41.3.2. | Classe Lista dinamica ordinata |
| 683 | 41.3.3. | Programma per l'uso della classe Lista |
| 684 | 41.4. | Classe Albero binario ordinato |
| 684 | 41.4.1. | Classe Albero con struttura dinamica |
| 688 | 41.4.2. | Programma per l'uso della classe Albero |
| 689 | 41.5. | Classe Tabella per il trattamento della tabella |
| 689 | 41.5.1. | Classe Tabella con implementazione di tipo statico |
| 692 | 41.5.2. | Classe Tabella con l'implementazione di tipo dinamico |
| 695 | 41.5.3. | Programma per l'uso della classe Tabella |
| 697 | Capitolo 42. | Semplici classi concrete |
| 697 | 42.1. | Classe Contatore modulo N |
| 698 | 42.2. | Classe Punto |
| 699 | 42.3. | Classe Data per il trattamento delle date |
| 703 | 42.4. | Classe Complex per il trattamento di numeri complessi |
| 704 | 42.4.1. | Dichiarazione della classe Complex (versione 1 - ridotta) |
| 706 | 42.4.2. | Classe Complex (versione complessa) |
| 710 | 42.4.3. | Classe Complex (con template) |
| 712 | 42.5. | Classe Razionale per il trattamento di numeri razionali |
| 715 | 42.6. | Classe Stringa per il trattamento di stringhe di caratteri |
| 716 | 42.7. | Classe BigInt per il trattamento di interi lunghi |
| 721 | Capitolo 43. | Classi con vettori |
| 721 | 43.1. | Classe Vettore per array monodimensionali |
| 724 | 43.1.1. | Classe modello Vettore |
| 725 | 43.2. | Classe UsaOggetti |
| 729 | 43.3. | Classe Matrice per array bidimensionali |
| 730 | 43.3.1. | Dichiarazione della classe Matrice |
| 738 | Capitolo 44. | Gestione di un archivio ad acccesso casuale con indice |
| 738 | 44.1. | Premessa |
| 738 | 44.2. | Analisi orientata agli oggetti (OOA) |
| 739 | 44.3. | Gli oggetti di dominio |
| 739 | 44.4. | Progetto orientato agli oggetti (OOD) |
| 739 | 44.5. | OOP specifica di basso livello e implementazione |
| 743 | 44.6. | Testo del programma Gestione Archivio con Tabella di Accesso |
| 761 | Capitolo 45. | Progetto di uno schedulatore |
| 761 | 45.1. | Premessa |
| 761 | 45.2. | Analisi orientata agli oggetti (OOA) |
| 761 | 45.2.1. | Requisiti informali di utente |
| 761 | 45.2.2. | Analisi dei requisiti di utente: diagramma dei casi d'uso |
| 763 | 45.3. | Gli oggetti di dominio |
| 764 | 45.4. | Progetto orientato agli oggetti (OOD) |
| 765 | 45.5 | OOP specifica di basso livello e implementazione |
| 767 | 45.6 | Testo del programma schedulatore |
| 775 | Appendice A. | Sintesi delle notazioni del C++ |
| 775 | A.1. | Classe Vettore per array monodimensionali |
| 775 | A.1.1. | Dichiarazioni, definizioni e prototipi di funzioni |
| 776 | A.1.2. | Unità di traduzione |
| 777 | A.2. | Elementi lessicografici |
| 778 | A.3. | Struttura del programma |
| 779 | A.4. | Tipi di dato e relativi operatori |
| 781 | A.5. | Definizioni di variabili con relativo tipo |
| 781 | A.6. | Operatori ed espressioni |
| 782 | A.7. | Istruzioni |
| 784 | A.8. | Classi |
| 786 | A.9. | Classi derivate |
| 788 | A.10. | Tabelle (parole chiave,delimitatori, operatori) |
| 795 | | Bibliografia |
| 795 | | Linguaggio C++ |
| 796 | | Metodi di progettazione a oggetti |
| 797 | | _ |
| 800 | | ___ |