Sunteți pe pagina 1din 3

Cuprins

CUPRINS

PARTEA I

CAPITOLUL 1 Noţiuni introductive 3.2. Implementarea structurii de decizie . . . 42


1.1. Structura generală a unui sistem de 3.3. Implementarea structurilor repetitive
calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 (ciclice) . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.2. Algoritmi . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.1. Implementarea structurilor
1.2.1. Noţiuni generale . . . . . . . . . . . . . . 11 ciclice cu test iniţial . . . . . . . . . . 45
1.2.2. Definiţii şi caracteristici . . . . . . . . 12 3.3.2. Implementarea structurilor
1.2.3. Reprezentarea algorimilor . . . . . . . 12 ciclice cu test final . . . . . . . . . . . 46
1.2.3.1. Reprezentarea prin 3.4. Facilităţi de întrerupere a unei secvenţe 50
scheme logice . . . . . . . . . 13 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . 51
1.2.3.2. Reprezentarea prin
pseudocod . . . . . . . . . . . . 14 CAPITOLUL 4 Tablouri
1.3. Teoria rezolvării problemelor . . . . . . . . 16 4.1. Declararea tablourilor . . . . . . . . . . . . . . . 53
Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 18 4.2. Tablouri unidimensionale . . . . . . . . . . . . 53
4.3. Tablouri bidimensionale . . . . . . . . . . . . . 55
CAPITOLUL 2 Date, operatori şi expresii 4.4. Şiruri de caractere . . . . . . . . . . . . . . . . . . 57
2.1. Limbajele C şi C++ . . . . . . . . . . . . . . . . 19 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 60
2.2. Programe în limbajul C/C++ . . . . . . . . . 19
2.3. Preprocesorul . . . . . . . . . . . . . . . . . . . . . 21 CAPITOLUL 5 Pointeri
2.4. Elemente de bază ale limbajului . . . . . . 22 5.1.Variabile pointer . . . . . . . . . . . . . . . . . . . 61
2.4.1. Vocabularul . . . . . . . . . . . . . . . . . . 22 5.1.1. Declararea variabilelor pointer . . . 61
2.4.2. Unităţile lexicale . . . . . . . . . . . . . . 22 5.1.2. Iniţializarea variabilelor pointer . . 62
2.5. Date în limbajul C/C++ . . . . . . . . . . . . . 23 5.1.3. Pointeri generici . . . . . . . . . . . . . 63
2.5.1. Tipuri de date . . . . . . . . . . . . . . . . 23 5.2. Operaţii cu pointeri . . . . . . . . . . . . . . . . . 63
2.5.2. Constante . . . . . . . . . . . . . . . . . . . 25 5.3. Pointeri şi tablouri . . . . . . . . . . . . . . . . . 64
.
2.5.2.1. Constante întregi . . . . . . . 25 5.3.1. Pointeri şi şiruri de caractere . . . . 64
2.5.2.2. Constante numerice, reale. 25 5.3.2.Pointeri şi tablouri bidimensionale. 66
2.5.2.3. Constante caracter . . . . . . 27 5.4. Tablouri de pointeri . . . . . . . . . . . . . . . . 67
2.5.2.4. Constante şir de caractere 28 5.5. Pointeri la pointeri . . . . . . . . . . . . . . . . . 68
2.5.3. Variabile . . . . . . . . . . . . . . . . . . . . 29 5.6. Modificatorul const în declararea
2.5.3.1. Declararea variabilelor . . 29 pointerilor . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.3.2. Iniţializarea variabilelor în Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 69
declaraţii . . . . . . . . . . . . . . 29
2.5.3.3. Operaţii de intrare/ieşire . 30 CAPITOLUL 6 Funcţii
2.6. Operatori şi expresii . . . . . . . . . . . . . . . . 31 6.1. Structura unei funcţii . . . . . . . . . . . . . . . 71
2.6.1. Operatori . . . . . . . . . . . . . . . . . . . . 31 6.2. Apelul şi prototipul unei funcţii . . . . . . . 72
2.6.2. Expresii . . . . . . . . . . . . . . . . . . . . . 39 6.3. Transferul parametrilor unei funcţii . . . . 74
2.6.3. Conversii de tip . . . . . . . . . . . . . . . 39 6.3.1. Transferul parametrilor prin
Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 39 valoare . . . . . . . . . . . . . . . . . . . . . 75
6.3.2. Transferul prin pointeri . . . . . . . . 75
CAPITOLUL 3 Implementarea 6.3.2.1. Funcţii care returnează
structurilor de control pointeri . . . . . . . . . . . . . . 77
3.1. Implementarea structurii secvenţiale . . . 41 6.3.3. Transferul prin referinţă . . . . . . . 77

5
Cuprins

PARTEA a II a

6.3.4. Transferul parametrilor către CAPITOLUL 9 Concepte de bază ale


funcţia main . . . . . . . . . . . . . . . . 81 programării orientate obiect
6.4. Tablouri ca parametri . . . . . . . . . . . . . . . 81 9.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . 129
6.5. Funcţii cu parametri impliciţi . . . . . . . . . 84 9.2. Abstractizarea datelor . . . . . . . . . . . . . . 129
6.6. Funcţii cu număr variabil de parametri . 84 9.3. Moştenirea . . . . . . . . . . . . . . . . . . . . . . . 130
6.7. Funcţii predefinite . . . . . . . . . . . . . . . . . 85 9.3.1. Moştenirea unică . . . . . . . . . . . . . 130
6.7.1. Funcţii matematice . . . . . . . . . . . . 85 9.3.1. Moştenirea multiplă . . . . . . . . . . . 130
6.7.2. Funcţii de clasificare (testare) a 9.4. Încapsularea informaţiei . . . . . . . . . . . . . 131
caracterelor . . . . . . . . . . . . . . . . . 85 9.5. Legarea dinamică (târzie) . . . . . . . . . . . . 132
6.7.3. Funcţii de conversie a 9.6. Alte aspecte . . . . . . . . . . . . . . . . . . . . . . 132
caracterelor . . . . . . . . . . . . . . . . . 87
6.7.4. Funcţii de conversie din şir în CAPITOLUL 10 Clase şi obiecte
număr . . . . . . . . . . . . . . . . . . . . . . 87 10.1. Definiţia claselor şi accesul la
6.7.5. Funcţii de terminare a unui proces Membri . . . . . . . . . . . . . . . . . . . . . . . . . 133
(program) . . . . . . . . . . . . . . . . . . . 87 10.1.1. Legătura clasă-structură-
6.7.6. Funcţii de intrare/ieşire . . . . . . . . 88 Uniune . . . . . . . . . . . . . . . . . . . 133
6.8. Clase de memorare . . . . . . . . . . . . . . . . . 90 10.1.2. Declararea claselor . . . . . . . . . 133
6.9. Moduri de alocare a memoriei . . . . . . . 92 10.1.3. Obiecte . . . . . . . . . . . . . . . . . . 136
6.10.Funcţii recursive . . . . . . . . . . . . . . . . . . 95 10.1.4. Membrii unei clase . . . . . . . . . 136
6.11.Pointeri către funcţii . . . . . . . . . . . . . . . 100 10.1.5. Pointerul this . . . . . . . . . . . . . . 139
Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 101 10.1.6. Domeniul unui nume,
vizibilitate şi timp de viaţă . . . 139
CAPITOLUL 7 Tipuri de date definite 10.2. Funcţii inline . . . . . . . . . . . . . . . . . . . . 140
de utilizator 10.3. Constructori şi destructori . . . . . . . . . . 142
7.1. Tipuri definite de utilizator . . . . . . . . . . 103 10.3.1. Iniţializarea datelor . . . . . . . . . 142
7.2. Structuri . . . . . . . . . . . . . . . . . . . . . . . . . 103 10.3.2. Constructori . . . . . . . . . . . . . . 143
7.3. Câmpuri de biţi . . . . . . . . . . . . . . . . . . . . 106 10.3.1.1. Constructori cu
7.4. Declaraţii typedef . . . . . . . . . . . . . . . . . . 107 liste de iniţializare. . 144
7.5. Uniuni . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.3.1.2. Constructori de
7.6. Enumerări . . . . . . . . . . . . . . . . . . . . . . . . 108 copiere . . . . . . . . . . 145
Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 111 10.3.3. Destructori . . . . . . . . . . . . . . . 145
10.3.4. Tablouri de obiecte . . . . . . . . . 150
CAPITOLUL 8 Fişiere 10.4. Funcţii prietene (friend) . . . . . . . . . . . . 151
8.1. Caracteristicile generale ale fişierelor. . . 113 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 151
8.2. Deschiderea unui fişier . . . . . . . . . . . . . . 114
8.3. Închiderea unui fişier . . . . . . . . . . . . . . . 116 CAPITOLUL 11 Supraîncărcarea
8.4. Prelucrarea fişierelor text . . . . . . . . . . . . 116 operatorilor
8.4.1. Prelucrarea la nivel de caracter . . 116 11.1. Moduri de supraîncărcare a
8.4.2. Prelucrarea la nivel de cuvânt. . . . 117 operatorilor . . . . . . . . . . . . . . . . . . . . . 153
8.4.3. Prelucrarea la nivel de şir de 11.1.1. Supraîncărcarea prin funcţii
caractere . . . . . . . . . . . . . . . . . . . 118 membre . . . . . . . . . . . . . . . . . . 153
8.4.4. Intrări/ieşiri formatate . . . . . . . . . 119 11.1.2. Supraîncărcarea prin funcţii
8.5. Intrări/ieşiri binare . . . . . . . . . . . . . . . . . 119 prietene . . . . . . . . . . . . . . . . . . 154
8.6. Poziţionarea într-un fişier . . . . . . . . . . . . 120 11.2. Restricţii la supraîncărcarea
8.7. Funcţii utilitare pentru lucrul cu fişiere. . 121 operatorilor . . . . . . . . . . . . . . . . . . . . . 155
8.8. Alte operaţii cu fişiere . . . . . . . . . . . . . . 122 11.3. Supraîncărcarea operatorilor unari . . . 156
Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 126 11.4. Membrii constanţi ai unei clase . . . . . 156

6
Cuprins

11.5. Supraîncărcarea operatorilor 12.4. Moştenirea simplă . . . . . . . . . . . . . . . 179


insertor şi extractor . . . . . . . . . . . . . . . 156 12.5. Moştenirea multiplă . . . . . . . . . . . . . . 186
11.6. Supraîncărcarea operatorului de 12.6. Redefinirea membrilor unei clase de
atribuire = . . . . . . . . . . . . . . . . . . . . . . . 157 bază în clasa derivată . . . . . . . . . . . . . 187
11.7. Supraîncărcarea operatorului de 12.7. Metode virtuale . . . . . . . . . . . . . . . . . 191
indexare [ ] . . . . . . . . . . . . . . . . . . . . . . 158 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . 195
11.8. Supraîncărcarea operatorilor new şi
delete. . . . . . . . . . . . . . . . . . . . . . . . . . 164 CAPITOLUL 13 Intrări/ieşiri
11.9. Supraîncărcarea operatorului ( ) . . . . . 166 13.1. Principiile de bază ale sistemului de
11.10. Supraîncărcarea operatorului -> . . . . . 166 I/O din limbajul C++ . . . . . . . . . . . . . 197
11.11. Conversii . . . . . . . . . . . . . . . . . . . . . . 172 13.2. Testarea şi modificarea stării unui
11.11.1. Conversii din tip flux . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
predefinit1 în tip predefinit2. 172 13.3. Formatarea unui flux . . . . . . . . . . . . . 201
11.11.2. Conversii din tip predefinit 13.3.1. Formatarea prin
în clasă . . . . . . . . . . . . . . . . . 172 manipulatori . . . . . . . . . . . . . 202
11.11.3. Conversii din clasă în tip 13.3.1.2. Manipulatori fără
predefinit . . . . . . . . . . . . . . . 173 parametri . . . . . . . . 202
11.11.4. Conversii din clasă1 în 13.3.1.2. Manipulatori cu
clasă2 . . . . . . . . . . . . . . . . . . 173 parametri . . . . . . . . 202
Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 176 13.3.2. Formatarea prin metode . . . . . 203
13.4. Metodele clasei istream . . . . . . . . . . . 204
CAPITOLUL 12 Crearea ierarhiilor de 13.5. Metodele clasei ostream . . . . . . . . . . 205
clase 13.6. Manipulatori creaţi de utilizator . . . . 206
12.1. Mecanismul moştenirii . . . . . . . . . . . . . 176 13.7. Fluxuri pentru fişiere . . . . . . . . . . . . . 207
12.2. Modul de declarare a claselor derivate. 177 13.8. Fişiere binare . . . . . . . . . . . . . . . . . . . 210
12.3. Constructorii claselor derivate . . . . . . . 178 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . .