Newsgroup: it.comp.lang.c++
Titolo: Dubbio su guida.

Ho intenzione di acquistare una guida sul C++.
Attualmente conosco un pò di Turbo Pascal, Delphi e ho letto il Tutorial di
Paolo Marotta.
Io sono indeciso tra due testi, se potete/volete date un occhiata ai sommari
che vi elenco:
1° testo
Programmare in C++            autore Stephen Blaha
Prefazione XVI
Introduzione XVIII
I vari modi di leggere questo volume XXV
Nota sui listati XXV
Capitolo 1 - Progettazione e programmazione a oggetti 1
I problemi della programmazione in C 1
La soluzione: la programmazione a oggetti 2
I concetti principali della programmazione a oggetti 3
L'universo, il dominio o il sistema dei problemi 3
Gli oggetti 4
Le classi 4
I messaggi e i metodi 5
L'ereditarieta' 5
L'ereditarieta' multipla 7
La composizione delle classi 8
Il polimorfismo 9
Le fasi dell'analisi e della progettazione a oggetti 10
Le schede CRC: un approccio alla progettazione di classi 12
Esempio di schede CRC: la lavanderia 13
L'approccio a oggetti: "Divide et impera" 14
Gli sviluppatori di progetti 14
I realizzatori del codice C++ dell'applicazione 15
Dalla progettazione tradizionale alla progettazione a oggetti 16
La terminologia a oggetti e la terminologia C++ 17
Capitolo 2 - Caratteristiche principali del C++ 19
Le funzionalita' in comune fra ANSI C e C++ 19
Gli obiettivi progettuali del linguaggio C++ 21
I commenti 21
Gli identificatori 22
Uno spazio dei nomi 22
Le costanti 23
Le parole riservate 24
La parola riservata void 24
Le funzioni void 24
L'argomento void 25
I puntatori void 25
La posizione delle dichiarazioni 26
Le costanti 27
Non si puo' aggirare una dichiarazione const 29
Le enumerazioni 30
I prototipi e le definizioni di funzioni 31
Le funzioni inline 32
Argomenti standard nelle definizioni delle chiamate a funzione 34
L'overloading delle funzioni 35
Regole usate dal compilatore per la selezione delle funzioni di overloading
37
La strategia per la realizzazione di famiglie di funzioni in overloading 39
La trasformazione dei nomi di funzione 39
Le variabili indirizzo 39
Il passaggio per indirizzo 41
Il passaggio per indirizzo di valori const 43
Funzioni che restituiscono indirizzi 45
Le operazioni di I/O su terminale: cin, cout, cerr, output formattato,
cin.getline 46
Output formattato 50
Lettura di stringhe con getline() 51
L'allocazione dinamica della memoria 52
Uso delle istruzioni delete 55
Esercizi 56
Istruzioni generali 56
Capitolo 3 - Le classi 59
Definizione 59
Cosa si intende con privato? 62
I membri delle classi 63
I tipi di dati nelle classi 64
Definizione di oggetti (variabili) 65
Configurazione della memoria 67
Inizializzazione membro a membro delle classi pubbliche 68
Inizializzazione di un oggetto da un altro oggetto 69
Configurazione della memoria 69
La posizione in memoria degli oggetti 70
Uso dei membri delle classi 71
La configurazione della memoria dopo una chiamata a inizializza_barca() 72
Le funzioni membro di classi 73
Terminologie a confronto 73
L'operatore di risoluzione del campo d'azione 73
Come utilizzare l'operatore di risoluzione del campo d'azione per accedere a
una variabile membro quando esiste una variabile locale avente lo stesso
nome 74
Le funzioni membro const 75
Un esempio descrittivo 76
Commenti sulle funzioni membro 78
L'organizzazione dei file di un programma 79
I puntatori a oggetti 80
I puntatori a funzioni membro 81
Un esempio di puntatore a una funzione membro 82
Una forma piu' compatta dell'esempio precedente 84
I puntatori a oggetti allocati dinamicamente 85
Rappresentazione della memoria 87
Passaggio per valore degli oggetti nelle chiamate a funzione 87
Rappresentazione della memoria 88
Passaggio per indirizzo degli oggetti nelle chiamate a funzione 88
Definizioni nidificate di classi 89
Gli oggetti membro di una classe: classi composite, la relazione di
composizione 90
I puntatori ai membri di una classe e l'indirizzamento di oggetti 91
Le variabili e le funzioni membro statiche 93
Le variabili membro statiche 93
Configurazione della memoria 94
Le funzioni membro statiche 95
Configurazione della memoria 97
Le strutture e le unioni 98
Una struttura C++ 99
Un'unione C++ 100
Esercizi 101
Capitolo 4 - Costruttori e distruttori 103
Definizione 103
Configurazione della memoria 105
Il ruolo dei costruttori nella creazione di un oggetto 107
Il formato delle istruzioni per la definizione di oggetti 108
Costruttori a zero argomenti - il costruttore standard 108
Costruttori a un argomento 109
Argomenti a piu' costruttori 111
Costruttori e oggetti dinamici 111
Costruttori e array di oggetti 112
Configurazione di memoria di a[ ] 113
Configurazione di memoria di ar[ ] 116
Configurazione di memoria di br[ ] 116
Costruttori e array dinamici di oggetti 116
Costruttori per classi composite 119
Inizializzazione delle variabili membro const e indirizzi 121
Costruttori con parametri costituiti da oggetti 123
Costruttori di copie 124
Configurazione della memoria 126
Costruttori con allocazione dinamica della memoria 128
Definizione dei distruttori 131
Quando vengono eseguiti i costruttori e i distruttori? 134
Esecuzione di costruttori e distruttori 135
Costruttori, distruttori e chiamate a funzione 136
Oggetti nello stretto frame di f() 137
Esercizi 138
Capitolo 5 - Funzioni friend e classi friend 141
Esempi di funzioni friend 143
Esempio 1. Una funzione non-membro e friend di una classe 143
Esempio 2. Una funzione non-membro friend di piu' classi 145
Esempio 3. Funzione membro di una classe e friend di una o piu' altre
classi. 146
Classi friend 147
Esercizi 151
Capitolo 6 - Overloading degli operatori 153
Regole e caratteristiche degli operatori modificati tramite overloading 154
Gli operatori modificati tramite overloading sono funzioni 155
Tabella delle precedenze degli operatori C++ 156
Overloading con operatori membro, operatori friend e operatori non friend di
una classe 156
Overloading con operatori membro 157
Overloading con operatori non-membro 157
Overloading con operatori friend 157
Overloading con operatori non-membro 157
Uso dell'overloading di un operatore non-membro come una funzione 163
Overloading di operatori friend 164
Il puntatore this 166
Tipi di overloading degli operatori 169
Overloading di operatori membro 169
Strategia per la realizzazione di overloading di operatori 172
L'overloading di operatori membro come funzioni membro 173
Overloading degli operatori ++ e -- 173
Esempi di overloading degli operatori ++ e -- come non-membri 174
Esempi di overloading friend degli operatori ++ e -- 176
Esempi di overloading membro degli operatori ++ e -- 178
Overloading dell'operatore = e allocazione dinamica della memoria 180
Overloading dell'operatore [ ] 183
Overloading di [ ]: il caso dell'indice int 184
Esercizi 187
Capitolo 7 - Conversioni di tipo in C++ 189
Conversioni implicite di tipo 189
Costruttori e conversioni di tipo 191
L'operatore di assegnamento e le conversioni di tipo 193
Overloading dell'operatore di assegnamento 195
Overloading dell'operatore cast 197
Esempio di programma con overloading dell'operatore cast 198
Conversioni di tipo nelle espressioni a tipi misti 199
Programma con conversione cast implicita degli oggetti nelle espressioni
aritmetiche 200
Conversioni cast di oggetti in espressioni a stringhe di caratteri 201
Conversioni di tipo e parametri dell'overloading di un operatore 203
Conversioni di tipo degli argomenti delle chiamate a funzione 205
Conversioni di tipo e valore restituito dalle funzioni 206
Esercizi 207
Capitolo 8 - I/O per terminale e file in C++ 209
Le operazioni di I/O su terminale 209
Formato di visualizzazione per l'output su stream 212
I file di intestazione per le operazioni di I/O: iostream.h ed fstream.h 214
L'apertura e la chiusura dei file 215
Lettura e scrittura di dati di tipo primitivo 218
Lettura e scrittura di oggetti con gli overloading degli operatori << e >>
221
Esempio di overloading friend di << e >> 225
Test dello stato di I/O 226
Accesso diretto 228
Aspetto dei file in C++ 228
File binari 231
Introduzione ai manipolatori 232
Definizione di un manipolatore 233
Esercizi 235
Capitolo 9 - Le derivazioni e le gerarchie di classi 237
La sezione protetta di una classe 241
Classi base pubbliche, private e protette 242
Ma, tecnicamente, cos'e' il codice dell'applicazione? 248
Le regole di privacy per le gerarchie a piu' livelli 257
Ereditarieta' multipla 262
I costruttori di classi derivate 263
I distruttori di una classe derivata 266
L'ordine di chiamata dei costruttori e dei distruttori 268
Chiamate a funzioni della classe base e derivata 271
Le classi base virtuali 274
Esercizi 282
Capitolo 10 - Le funzioni virtuali e il polimorfismo 285
Puntatori e indirizzi di oggetti appartenenti a una classe base 285
Le regole per la conversione di tipo fra classi base e derivate 288
Le gerarchie di funzioni 289
Le gerarchie di funzioni virtuali 292
Le regole per le funzioni virtuali 292
Il meccanismo delle funzioni virtuali 293
Il polimorfismo 297
Le prestazioni del meccanismo di implementazione del polimorfismo 298
Gerarchia di funzioni "classiche" 299
Gerarchia di funzioni virtuali 301
Le gerarchie multiple di funzioni virtuali 303
Le funzioni virtuali pure e le classi astratte 304
Esercizi 308
Capitolo 11 - I modelli 311
Le funzioni modello 311
Programma contenente una funzione modello 312
I parametri della funzione modello devono dipendere dal tipo di elemento 314
Funzioni modello con piu' tipi di elementi 314
Funzioni modello e famiglie di funzioni modificate tramite overloading 316
Estensione delle regole di corrispondenza delle funzioni di overloading 316
Generazione di definizioni di funzioni tramite modelli 318
Le classi modello 319
I tipi di elementi di una classe modello 322
Esercizi 323
Capitolo 12 - Gestione delle eccezioni 325
"Lancio" e "raccolta" delle eccezioni 325
Lancio e raccolta delle eccezioni 326
Regole per le eccezioni 329
Istruzioni catch multiple 330
Regole per gli elenchi di gestori delle eccezioni 332
Regole di corrispondenza del tipo in un gestore 335
Eccezioni lanciabili dalle funzioni 335
Diagrammi per illustrare il meccanismo di gestione delle eccezioni 336
Raggruppamento delle eccezioni 338
Errori ed eccezioni dei costruttori 340
Esercizi 341
Capitolo 13 - Conversione di applicazioni C in C++ 343
Conversione da C pre-ANSI a C ANSI 344
Conversione da C a C++ 344
Una considerazione aggiuntiva: i goto 348
Capitolo 14 - Nuove funzionalita' del C++ 351
Il valore restituito dalle funzioni virtuali 351
La parola riservata mutable 352
Il tipo bool 353
Manipolazione dei tipi nei programmi e typeid() 354
Gli spazi dei nomi e le dichiarazioni using 356
Nuove forme di conversione cast e informazioni sui tipi run-time (RTTI) 368
Capitolo 15 - Liste concatenate e altre applicazioni 377
Overloading associativo dell'operatore [ ] 377
Liste concatenate 379
Liste concatenate eterogenee 385
Mappaggio della ramdisk MS-DOS 391
Capitolo 16 - Comunicazioni a oggetti fra processi 395
Il mappaggio della memoria 396
Condivisione della memoria 399
Il bloccagggio dei file 404
I semafori 407
Uso della memoria condivisa con una sincronizzazione tramite un semaforo 410
Code di messaggi 416
Capitolo 17 - Standard Template Library (STL) 431
La struttura generale delle librerie STL 431
I container 431
Iteratori 432
Algoritmi 432
Le strategie per l'uso della libreria STL 433
La libreria STL e i tipi di dati primitivi 434
Algoritmi e tipi primitivi 434
Gli iteratori di I/O e i tipi primitivi 437
Caratteristiche generali degli iteratori 439
Le classi container sequenziali 440
La classe container vector 440
La classe container list 442
La classe container deque 443
Adattatori per container 443
Classi container associative 444
Uso di iteratori e algoritmi con i container 445
Appendice A - Breve introduzione al linguaggio C 451
Le variabili semplici 451
I commenti 453
Le costanti 454
Le costanti intere 454
Le costanti long int 454
Le costanti char 455
Le costanti stringa 456
Le costanti in virgola mobile 456
Gli operatori 457
Le funzioni 461
I costrutti if, i cicli e i costrutti switch 464
La struttura dei programmi e le categorie di memorizzazione delle variabili
467
I puntatori 470
Gli array 472
Le strutture 476
Operazioni di input e output sul terminale 479
2° Testo
C++ Tutto&Oltre               autore   Liberty
Introduzione xix
Argomenti descritti nel volume xix
Parte 1, La programmazione a oggetti xix Parte 2, Implementazione xix
Parte 3, Manipolazione dei dati xx
Parte 4, Persistenza degli oggetti e crittografia xx
Parte 5, Elementi di calcolo distribuito xx
Prerequisiti xx
Prerequisiti software xxi
Come leggere questo volume xxi
Parte 1 La programmazione a oggetti 1
Capitolo 1 - Analisi e programmazione a oggetti 3
Realizzazione di modelli 4
Progettazione del software: il linguaggio di modellazione 5
Progettazione del software: il processo 6
L'intuizione 8
Analisi dei requisiti 9
Casi d'uso 9
Analisi dell'applicazione 20
Analisi dei sistemi 20
I documenti di pianificazione 20
Elementi grafici 21
Documenti 22
Progettazione 22
Cosa sono le classi? 23
Trasformazioni 25
Il modello statico 26
Modello dinamico 35
Riepilogo 38
Capitolo 2 - Implementazione delle classi in codice C++ 41
Traduzione dei diagrammi delle classi in codice C++ 42
Classi standard 42
Classi template (modello) 43
Classi di servizio 44
Associazioni 45
Aggregazioni 52
Generalizzazione 54
Traduzione dei diagrammi delle interazioni in codice C++ 55
Implementazione dei diagrammi collaborativi
e dei diagrammi di sequenza in codice C++ 57
Traduzione dei diagrammi delle transizioni di stato in codice C++ 63
Traduzione dei diagrammi delle attività in codice C++ 66
Riepilogo 70
Capitolo 3 - Ereditarietà, polimorfismo e riutilizzo del codice 71
I vantaggi dell'ereditarietà 72
Liste concatenate a oggetti 73
Progettazione di una lista concatenata 73
Implementazione della lista concatenata 74
Le classi astratte 80
Modifica dei metodi virtuali 85
Distruttori virtuali 86
Polimorfismo tramite l'overloading dei metodi 86
Gestione della memoria 90
Problemi legati all'overloading
di altri operatori 94
L'operatore di assegnamento 95
Overloading degli operatori di incremento 98
Costruttori virtuali di copie 101
Ereditarietà multipla 102
Problemi dell'ereditarietà multipla 103
Ereditarietà multipla o contenimento? 108
Riepilogo 110
Parte 2 Implementazione 111
Capitolo 4 - La gestione della memoria 113
La gestione della memoria e i puntatori 114
Gli sprechi di memoria 117
Allocazione degli array 118
Puntatori "a spasso" 119
Puntatori const 120
Puntatori const e funzioni membro const 121
Passaggio per indirizzo 121
Passaggio di un puntatore const 121
Mai restituire un puntatore a un oggetto che si trova fuori
dal campo di visibilità 122
Di chi è il puntatore? 125
Puntatori ed eccezioni 126
Uso dei puntatori automatici 131
Conteggio degli indirizzi 137
Riepilogo 150
Capitolo 5 - Utilizzo dei framework 151
Le classi della libreria MFC 152
Introduzione 152
Altri wizard 156
Un cambio di prospettiva 156
L'architettura dell'applicazione 156
Thread multipli 156
Multithread cooperativo o preventivo 157
Il multithread preventivo 158
Un breve esempio 159
Creazione dei thread 160
Le classi di servizio 178
Classi per la manipolazione delle stringhe 178
Classi per il tempo 179
Documenti e viste 180
Le viste 180
Riepilogo 193
Capitolo 6 - Le classi container della libreria STL 195
Definizione e istanziazione dei template 195
Definizione e istanziazione di funzioni template 196
Definizione e istanziazione delle classi template 196
I container sequenziali 198
Il container vector 198
Il container list 216
Il container deque 227
Introduzione all'uso degli stack 229
Introduzione all'uso delle code 232
Code a priorità 235
Introduzione ai container associativi 236
Il container map 236
Il container multimap 249
Il container set 251
Il container multiset 252
Fattori prestazionali 252
Uso della libreria standard C++ 253
Progettazione dei tipi di elementi 254
Riepilogo 255
Capitolo 7 - Iteratori e algoritmi STL 257
Classi di iterazione 257
Posizione all'interno di un container 257
Tipi di iteratori e container 258
La classe base degli iteratori 259
Gli iteratori di input 261
Gli iteratori di output 262
Gli iteratori in avanti 262
Gli iteratori bidirezionali 262
Gli iteratori di accesso diretto 262
Funzionalità degli iteratori 262
Le classi standard degli iteratori 264
Gli oggetti funzione 267
Predicati 268
Le funzioni aritmetiche 269
Classi di algoritmi 270
Operazioni sequenziali senza modifiche 270
Algoritmi a trasformazione della sequenza 281
Operazioni di ordinamento e altre operazioni correlate 295
Composizioni di funzioni standard 319
Riepilogo 326
Capitolo 8 - Come evitare i conflitti fra i nomi: i namespace 327
Le funzioni e le classi vengono risolte per nome 328
Creazione di un namespace 331
Dichiarazione e definizione dei tipi 332
Definizione di funzioni all'esterno di un namespace 333
Aggiunta di nuovi membri 333
Nidificazione di namespace 334
Uso di un namespace 334
La parola riservata using 338
La direttiva using 338
La dichiarazione using 340
Un alias di namespace 341
Il namespace senza nome 342
Il namespace standard std 343
Riepilogo 344
Capitolo 9 - Manipolazione runtime del tipo degli oggetti 347
L'operatore typeid() 348
La classe type_info 348
Il costruttore della classe type_info 349
Gli operatori di confronto 349
La funzione membro name() 351
La funzione membro before() 353
L'operatore typeid() nei costruttori e nei distruttori 354
Errato utilizzo di typeid() 355
Conversione dinamica del tipo degli oggetti 357
L'operatore dynamic_cast() 357
Quale operatore: typeid() o dynamic_cast()? 362
Altri operatori di conversione 363
L'operatore static_cast() 363
L'operatore reinterpret_cast() 364
Quando usare dynamic_cast(), static_cast
e reinterpret_cast() 365
L'operatore const_cast() 365
Conversioni di tipo vecchie e nuove 367
Riepilogo 368
Capitolo 10 - Alla ricerca delle massime prestazioni 369
Funzioni inline situate all'esterno della definizione delle classi 370
Si deve evitare di rivelare il codice di implementazione
nei file header distribuiti 376
Analisi dei costi delle funzioni virtuali e delle classi base virtuali 377
Le funzioni virtuali 377
Classi base virtuali 381
I compromessi del meccanismo RTTI 385
Gestione della memoria per oggetti temporanei 388
Riepilogo 390
Parte 3 Manipolazione dei dati 393
Capitolo 11 - La ricorsione e le strutture di dati ricorsive 395
Cos'è la ricorsione? 396
I numeri di Fibonacci: una definizione ricorsiva 396
Interruzione della ricorsione 397
Strutture ricorsive 398
Attraversamento di una struttura ricorsiva con una funzione ricorsiva 400
Ricorsione, iterazione e ricorsione in coda 404
Ricorsione in coda 407
Ricorsione indiretta 408
La ricorsione e lo stack 409
Debugging di funzioni ricorsive 411
Riepilogo 411
Capitolo 12 - Metodi efficienti di ordinamento 413
Analisi delle prestazioni degli algoritmi 414
Confronto dei casi medio, peggiore e migliore 414
La stabilità degli ordinamenti 416
Utilizzo della memoria durante l'ordinamento 416
L'algoritmo bubble sort 416
Analisi dell'algoritmo bubble sort 418
Ordinamento a inserimento 419
Analisi dell'ordinamento a inserimento 421
L'ordinamento a selezione 421
Analisi dell'ordinamento a selezione 423
L'algoritmo quick sort 423
Analisi dell'algoritmo quick sort 426
L'algoritmo merge sort 426
Analisi dell'algoritmo merge sort 431
Ordinamento shell sort 431
Analisi dell'algoritmo shell sort 433
L'ordinamento heap sort 433
Analisi dell'ordinamento heap sort 436
Scelta di un metodo di ordinamento 436
Generazione dei dati di test 438
Riepilogo 440
Capitolo 13 - Algoritmi di ricerca in C++ 441
Ricerche lineari 442
Analisi della ricerca lineare 443
Ricerca in un array ordinato 444
Corrispondenza di modelli 446
L'algoritmo a forza bruta 446
Rappresentazione dei modelli 448
Costruzione di macchine a stati finiti 448
Algoritmi per grafici 451
Ricerche in profondità (depth-first) 452
Ricerche in ampiezza (breadth-first) 454
Confronto fra le ricerche depth-first e breadth-first 455
Ricerca best-first 455
Implementazione dei grafici 456
Rappresentazione del gioco del tris (tic-tac-toe) 461
Applicazione della potatura alfa-beta 461
Il problema del viaggiatore 463
Ricerche esterne 464
Accesso sequenziale a indici 464
Alberi binari 465
Alberi 2-3-4 465
Riepilogo 467
Capitolo 14 - Tecniche di hash e parsing 469
Le funzioni hash 470
Risoluzione delle collisioni 471
Ricalcolo hash lineare 471
Ricalcolo hash non lineare 472
Il fattore di carico (alfa) 473
Concatenamento 474
Indirizzamento a secchiello 475
L'analisi lessicale (parsing) 487
Analisi di espressioni numeriche 489
Analisi di stringhe 490
Grammatica e analisi a-contestuale 492
Uso del parsing top-down per convalidare le espressioni regolari 492
Riepilogo 493
Parte 4 Persistenza degli oggetti e crittografia 495
Capitolo 15 - La persistenza degli oggetti 497
Creazione degli oggetti da salvare 498
Cos'è un B-tree? 506
Scrittura su disco 510
Gestione cache 511
Calcolo delle dimensioni delle pagine 511
Calcolo del numero di pagine che possono trovarsi
contemporaneamente in memoria 512
Swap su disco 512
Implementazione del B-tree 513
Il funzionamento del programma 545
Il funzionamento del codice 547
Le ricerche 562
Riepilogo 565
Capitolo 16 - I database relazionali e la persistenza 567
Concetti di base per i database relazionali 568
Architettura di un database relazionale 570
Restrizioni e considerazioni 571
Il linguaggio SQL: definizione e interrogazione dei database 571
La normalizzazione 572
Le unioni 572
Persistenza di un database relazionale 573
Trasferimento degli identificatori di oggetti 574
Uso dei campi Blob 575
Nascondere i dettagli 575
Memorizzazione diretta degli oggetti 576
Uso delle API per database 576
Accesso alle fonti di dati ODBC 576
Uso di MFC 579
Le istruzioni SQL 593
Definizione delle caratteristiche del database 593
Riepilogo 594
Capitolo 17 - La persistenza degli oggetti nei database relazionali 595
Gli oggetti in Oracle 8 596
Tipi di oggetti 597
Riferimenti agli oggetti 598
L'operatore DEREF 599
Raccolte di oggetti 599
Uso di procedure esterne sviluppate in C++ 601
Mappaggio di diagrammi UML in un database relazionale a oggetti 604
Progettazione del database 605
Generazione del codice C++ 606
Generazione del server 609
Un esempio: un sistema per ordinazioni 614
Descrizione del sistema 615
Capitolo 18 - I database a oggetti 619
Panoramica di ODBMS 619
Lo standard ODMG 621
Un'applicazione per fatture in C++ 622
La persistenza dei dati 640
Schemi di database e strumenti per la cattura degli schemi 642
Le raccolte 644
Gli iteratori 647
Le relazioni 647
Database e transazioni 653
Elementi di base dei sistemi ODBMS 669
Architettura client/server 670
Memorizzazione dei dati e raggruppamento degli oggetti 670
Granularità del trasferimento dei dati 671
Granularità del bloccaggio dei dati 672
Riepilogo 673
Capitolo 19 - Protezione delle applicazioni tramite la crittografia 675
Una breve storia della crittografia 675
Il ruolo dell'NBS 676
Cos'è la crittografia 678
I codici 678
Cifratura 679
Cifratura di Vernam 681
La crittografia a chiave privata 685
Algoritmi a chiave privata 685
Meccanismi di crittografia a chiave segreta 687
Uso dei centri per la distribuzione delle chiavi 689
La crittografia a chiave pubblica 691
Tecnica del puzzle di Ralph Merkle 691
Tecniche crittografiche multiutente di Diffie-Hellman 691
La tecnica RSA 694
Uso di PGP (Pretty Good Privacy) 694
Scelta dei numeri primi in PGP 694
Utilizzo dei numeri casuali in crittografia 695
Crittografia di file con PGP 695
I limiti della crittografia 699
Restrizioni legali della crittografia 700
Attacchi alla crittografia 701
Attacco a forza bruta 701
Analisi crittografica 702
Violazione di un file codificato PGP 703
Le firme digitali 703
Lo standard PKCS 704
Lo standard DSS 705
Non ripudiabilità 705
Prodotti crittografici commerciali 706
Client Web sicuri 706
Microsoft Internet Explorer 706
Netscape Communicator/Navigator 707
Client sicuri di posta elettronica 707
Prodotti desktop sicuri 708
Riepilogo 711
Parte 5 Elementi di calcolo distribuito 713
Capitolo 20 - CORBA 715
Teoria e motivazioni 717
L'ambiente CORBA minimo 717
Un framework per la tecnologia a oggetti 718
Il protocollo IIOP: la "colla" degli oggetti 719
Un modello a componenti 721
Il linguaggio IDL: il contratto 721
Il linguaggio IDL e le definizioni di classi C++ 723
Il sistema ORB (Object Request Broker) 724
Periodo di vita degli oggetti 724
Ambienti di sviluppo 725
Confronto fra gli ambienti CORBA 726
Interoperabilità ORB 726
Creazione del client C++ 727
Generazione dello stub 728
Connessione all'ORB 729
Chiamata dei metodi 729
Completamento dell'applicazione client C++ 729
Creazione del server C++ 730
Generazione dello scheletro del server 731
Implementazione dei metodi del server 731
Connessione con la classe del server 732
Caricamento del BOA nell'ORB 732
Un client Java 735
Generazione dello stub 735
Codice di avvio e di chiamata dei metodi 736
Strategie di test 737
Tracing 737
Servizi di monitoraggio e di registrazione 737
Gestione delle eccezioni 737
Debugging remoto 738
Il servizio di denominazione (NS) e l'interoperabilità 738
I riferimenti IOR (Interoperable Object Reference) 739
Contesti di denominazione 739
Elementi di interoperabilità 740
Prestazioni 741
Spreco di memoria in ORB 741
Granularità dell'interfaccia 741
Passaggio di riferimenti a oggetti 742
Riepilogo 742
Capitolo 21 - COM 743
Le basi dell'architettura COM 744
L'architettura COM 744
Le interfacce 746
L'interfaccia IUnknown 750
Gli oggetti COM 753
Librerie di tipi 756
Altre tecnologie COM 757
Uso di oggetti COM in C++ 763
Uso di interfacce semplici 763
Uso dei puntatori intelligenti 764
Uso delle librerie di tipi 769
Scrittura di oggetti COM in C++ 773
Ereditarietà multipla 773
Classi nidificate 776
Uso di classi rapide 779
Riepilogo 780
Capitolo 22 - Java e C++ 781
Analogie fra C++ e Java 781
I commenti 782
I tipi di dati 782
Gli operatori 784
Istruzioni per il controllo dei flussi 785
Differenze fra C++ e Java 786
Gestione della memoria 786
Assenza di puntatori 786
Assenza di preprocessore 786
Assenza di distruttori 786
Specificatori di accesso 787
Parametri dei metodi 788
Funzioni esterne 789
Enumerazioni 789
Le stringhe 790
Gli array 790
Le funzionalità di programmazione a oggetti di Java 791
Le classi 791
Ereditarietà 798
Ereditarietà multipla 800
Gestione delle eccezioni 801
Personalmente sarei orientato sul 2° ma mi sembra piuttosto avanzato
rispetto al 1°. Tempo fa qualcuno mi disse che prima di passare a C++ "Tutto
& Oltre" era meglio leggere il tutorial di Marotta, ripeto, io l'ho fatto,
ma a giudicare dal sommario del 2° testo, avrei bisogno di qualche altro
testo più "introduttivo" o sottovaluto le mie conoscenze?.
Cosa ne pensate?
Avete già letto 1 dei due libri o meglio entrambi?
Grazie
Luigi
--
Posted from [195.223.215.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Me lo hanno prestato ma onestamente l'ho trovato poco utile, secondo me
è troppo difficile, o forse troppo poco chiaro per poterlo usare come
unico testo di riferimento.
Posseggo lo Stroustrup, onestamente anche questo è difficilotto per un
principiante, però sicuramente meglio di tutto&oltre, inoltre ci sono le
std documentate.
Mi hanno suggerito il Lippman, pare che per gli esordienti sia una
chicca, però non l'ho ancora comprato!!


Sai dirmi il titolo completo del Lippman?
Ma č in italiano?


Luigi

>Spero sia sufficiente :-)
Non potevi fare di meglio, grazie!


Sul libro di Lippman ho trovato il sito della casa editrice, se ti interessa
questo è il link hai sui libri tra cui C++ - Corso di programmazione - Terza
edizione   
http://www.addison.it/html/TITOLI2.htm
Ciao


 wrote in message
000001c001f8$b688a6e0$ab352797@it...
