CAPITOLUL 1 Noţiuni introductive CURS C++ · PDF fileStructura generală a unui sistem de 3.3. Implementarea structurilor repetitive calcul ... 15 În orice sistem de

  • Upload
    lydang

  • View
    237

  • Download
    3

Embed Size (px)

Citation preview

  • CAPITOLUL 1 Noiuni

    introductive

    9

    CURS C++

    CUPRINS

    PARTEA I CAPITOLUL 1 Noiuni 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. Noiuni generale . . . . . . . . . . . . . . 11 ciclice cu test iniial . . . . . . . . . . 45 1.2.2. Definiii 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. Faciliti de ntrerupere a unei secvene 50 scheme logice . . . . . . . . . 13 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . 51

    1.2.3.2. Reprezentarea prin pseudocod . . . . . . . . . . . . 14 CAPITOLUL 4 Tablouri

    1.3. Teoria rezolvrii problemelor . . . . . . . . 16 4.1. Declararea tablourilor . . . . . . . . . . . . . . . 53 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 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 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 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. Unitile lexicale . . . . . . . . . . . . . . 22 5.1.2. Iniializarea 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. Operaii 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. Iniializarea variabilelor n ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 69

    declaraii . . . . . . . . . . . . . . 29 2.5.3.3. Operaii de intrare/ieire . 30 CAPITOLUL 6 Funcii

    2.6. Operatori i expresii . . . . . . . . . . . . . . . . 31 6.1. Structura unei funcii . . . . . . . . . . . . . . . 71

  • CAPITOLUL 1 Noiuni

    introductive

    10

    2.6.1. Operatori . . . . . . . . . . . . . . . . . . . . 31 6.2. Apelul i prototipul unei funcii . . . . . . . 72 2.6.2. Expresii . . . . . . . . . . . . . . . . . . . . . 39 6.3. Transferul parametrilor unei funcii . . . . 74 2.6.3. Conversii de tip . . . . . . . . . . . . . . . 39 6.3.1. Transferul parametrilor prin

    ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 39 valoare . . . . . . . . . . . . . . . . . . . . . 75 6.3.2. Transferul prin pointeri . . . . . . . . 75 CAPITOLUL 3 Implementarea 6.3.2.1. Funcii care returneaz structurilor de control pointeri . . . . . . . . . . . . . . 77 3.1. Implementarea structurii secveniale . . .

    41 6.3.3. Transferul prin referin . . . . . . . 77

    PARTEA a II a 6.3.4. Transferul parametrilor ctre CAPITOLUL 9 Concepte de baz ale

    funcia main . . . . . . . . . . . . . . . . 81 programrii orientate obiect 6.4. Tablouri ca parametri . . . . . . . . . . . . . . . 81 9.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . 129 6.5. Funcii cu parametri implicii . . . . . . . . . 84 9.2. Abstractizarea datelor . . . . . . . . . . . . . . 129 6.6. Funcii cu numr variabil de parametri . 84 9.3. Motenirea . . . . . . . . . . . . . . . . . . . . . . . 130 6.7. Funcii predefinite . . . . . . . . . . . . . . . . . 85 9.3.1. Motenirea unic . . . . . . . . . . . . . 130

    6.7.1. Funcii matematice . . . . . . . . . . . . 85 9.3.1. Motenirea multipl . . . . . . . . . . . 130 6.7.2. Funcii de clasificare (testare) a 9.4. ncapsularea informaiei . . . . . . . . . . . . . 131

    caracterelor . . . . . . . . . . . . . . . . . 85 9.5. Legarea dinamic (trzie) . . . . . . . . . . . . 132 6.7.3. Funcii de conversie a 9.6. Alte aspecte . . . . . . . . . . . . . . . . . . . . . . 132

    caracterelor . . . . . . . . . . . . . . . . . 87 6.7.4. Funcii de conversie din ir n CAPITOLUL 10 Clase i obiecte

    numr . . . . . . . . . . . . . . . . . . . . . . 87 10.1. Definiia claselor i accesul la 6.7.5. Funcii de terminare a unui proces

    Membri . . . . . . . . . . . . . . . . . . . . . . . . . 133

    (program) . . . . . . . . . . . . . . . . . . . 87 10.1.1. Legtura clas-structur- 6.7.6. Funcii de intrare/ieire . . . . . . . . 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.Funcii recursive . . . . . . . . . . . . . . . . . . 95 10.1.4. Membrii unei clase . . . . . . . . . 136 6.11.Pointeri ctre funcii . . . . . . . . . . . . . . . 100 10.1.5. Pointerul this . . . . . . . . . . . . . . 139 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 101 10.1.6. Domeniul unui nume,

    vizibilitate i timp de via . . . 139 CAPITOLUL 7 Tipuri de date definite 10.2. Funcii inline . . . . . . . . . . . . . . . . . . . . 140 de utilizator 10.3. Constructori i destructori . . . . . . . . . . 142 7.1. Tipuri definite de utilizator . . . . . . . . . . 103 10.3.1. Iniializarea datelor . . . . . . . . . 142 7.2. Structuri . . . . . . . . . . . . . . . . . . . . . . . . . 103 10.3.2. Constructori . . . . . . . . . . . . . . 143 7.3. Cmpuri de bii . . . . . . . . . . . . . . . . . . . . 106 10.3.1.1. Constructori cu 7.4. Declaraii typedef . . . . . . . . . . . . . . . . . . 107 liste de iniializare. . 144 7.5. Uniuni . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.3.1.2. Constructori de 7.6. Enumerri . . . . . . . . . . . . . . . . . . . . . . . . 108 copiere . . . . . . . . . . 145 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 111 10.3.3. Destructori . . . . . . . . . . . . . . . 145 10.3.4. Tablouri de obiecte . . . . . . . . . 150 CAPITOLUL 8 Fiiere 10.4. Funcii prietene (friend) . . . . . . . . . . . . 151 8.1. Caracteristicile generale ale fiierelor. . . 113 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 151

  • CAPITOLUL 1 Noiuni

    introductive

    11

    8.2. Deschiderea unui fiier . . . . . . . . . . . . . . 114 8.3. nchiderea unui fiier . . . . . . . . . . . . . . . 116 CAPITOLUL 11 Suprancrcarea 8.4. Prelucrarea fiierelor text . . . . . . . . . . . . 116 operatorilor

    8.4.1. Prelucrarea la nivel de caracter . . 116 11.1. Moduri de suprancrcare a 8.4.2. Prelucrarea la nivel de cuvnt. . . . 117 operatorilor . . . . . . . . . . . . . . . . . . . . . 153 8.4.3. Prelucrarea la nivel de ir de 11.1.1. Suprancrcarea prin funcii

    caractere . . . . . . . . . . . . . . . . . . . 118 membre . . . . . . . . . . . . . . . . . . 153 8.4.4. Intrri/ieiri formatate . . . . . . . . . 119 11.1.2. Suprancrcarea prin funcii

    8.5. Intrri/ieiri binare . . . . . . . . . . . . . . . . . 119 prietene . . . . . . . . . . . . . . . . . . 154 8.6. Poziionarea ntr-un fiier . . . . . . . . . . . . 120 11.2. Restricii la suprancrcarea 8.7. Funcii utilitare pentru lucrul cu fiiere. . 121 operatorilor . . . . . . . . . . . . . . . . . . . . . 155 8.8. Alte operaii cu fiiere . . . . . . . . . . . . . . 122 11.3. Suprancrcarea operatorilor unari . . . 156 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . . 126 11.4. Membrii constani ai unei clase . . . . . 156

    11.5. Suprancrcarea operatorilor 12.4. Motenirea simpl . . . . . . . . . . . . . . . 179

    insertor i extractor . . . . . . . . . . . . . . . 156 12.5. Motenirea multipl . . . . . . . . . . . . . . 186 11.6. Suprancrcarea operatorului de 12.6. Redefinirea membrilor unei clase de

    atribuire = . . . . . . . . . . . . . . . . . . . . . . . 157 baz n clasa derivat . . . . . . . . . . . . . 187 11.7. Suprancrcarea operatorului de 12.7. Metode virtuale . . . . . . . . . . . . . . . . . 191

    indexare [ ] . . . . . . . . . . . . . . . . . . . . . . 158 ntrebri i exerciii . . . . . . . . . . . . . . . . . . . 195 11.8. Suprancrcarea operatorilor new i

    delete. . . . . . . . . . . . . . . . .