C++

Curs
9/10 (8 voturi)
Domeniu: Automatică
Conține 17 fișiere: doc
Pagini : 145 în total
Cuvinte : 38385
Mărime: 289.59KB (arhivat)
Publicat de: Ilarie Spiridon
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Bereanu

Cuprins

  1. CUPRINS
  2. Introducere 1
  3. L1: Limbajul de programare C++ şi OOP. Caracteristici 2
  4. L2: Clase C++. Declarare. Implementare. Instanţieri.
  5. Utilitatea operatorului “::” 11
  6. L3: Crearea, iniţializarea şi distrugerea obiectelor unei clase 24
  7. L4: Membrii de tip static într-o clasă 42
  8. L5: Manevrarea dinamică a obiectelor unei clase. Funcţii prietene
  9. (friend). Clase friend 57
  10. L6: Clase imbricate. Obiecte şi funcţii 67
  11. L7: Moştenire. Clase de bază. Clase derivate 76
  12. L8: Constructori şi destructori în procesul de derivare 88
  13. L9: Funcţii virtuale. Clase abstracte 95
  14. L10: Supraîncărcarea funcţiilor şi operatorilor 106
  15. L11: Supraîncărcarea operatorilor cu funcţii friend 115
  16. L12: Supraîncărcarea unor operatori speciali 129
  17. L13: Biblioteca IOSTREAM. Manipulatori 138
  18. L14: Operaţii de intrare / ieşire cu fişiere în C++ 145
  19. Bibliografie

Extras din curs

INTRODUCERE

Limbajele de programare oferă utilizatorului posibilitatea de a folosi, în programare, date de tipuri diferite (tipuri predefinite) cu dimensiuni variate. Astfel de tipuri au predefinite atât reprezentarea datelor cât şi operaţiile care se pot efectua asupra lor.

În programare, pentru a simplifica utilizarea conceptelor care nu corespund direct tipurilor predefinite din limbajul considerat, s-a ajuns la ideea introducerii tipurilor de date definite de utilizator. Totuşi, există mari diferenţe între tipurile predefinite şi tipurile utilizator. Tipul definit de utilizator, de exemplu struct, defineşte doar reprezentarea datelor din tipul respectiv, iar utilizatorul trebuie să definească funcţii pentru diferite operaţii care se pot efectua cu astfel de date. De aceea, în evoluţia limbajelor de programare, se are în vedere o cât mai mare apropiere în ceea ce priveşte modul de comportare al celor două categorii de tipuri de date, prin:

1. stabilirea unei legături dintre reprezentarea datelor şi operaţiile ce se pot efectua cu ele;

2. posibilitatea indicării operaţiilor cu date tip utilizator cu ajutorul operatorilor;

3. posibilitatea realizării de conversii de la tipuri predefinite la tipuri utilizator şi invers, precum şi între diverse tipuri definite de utilizator (implicit / explicit);

4. realizarea iniţializării datelor de tip utilizator în momentul declarării lor.

Ideea legăturii între reprezentarea datelor de tip utilizator şi operaţiile admise a se efectua cu ele se poate finaliza cu:

a) includerea funcţiilor care definesc astfel de operaţii în tipul respectiv (un struct extins);

b) protejarea accesului la date.

Având în vedere punctul (b), locul lui struct va fi luat de class.

Într-o clasă, reprezentarea datelor constituie partea de implementare a tipului respectiv, iar setul de operaţii admis, reprezintă interfaţa programului cu acel tip.

În general, partea de implementare a unei clase trebuie să fie protejată, iar partea de interfaţă să fie publică.

Tipurile definite cu ajutorul claselor se mai numesc şi tipuri abstracte de date, iar datele de tip abstract se numesc obiecte. Obiectele de acelaşi tip abstract se numesc instanţieri ale clasei ce defineşte acel tip.

Termenul de abstractizare a datelor se referă la procesul de definire a tipurilor abstracte de date, iar cel de programare orientată pe obiecte (OOP) implică definirea de tipuri abstracte de date. Moştenirea şi polimorfismul, elemente caracteristice unei astfel de programări, se referă la mijloacele de care se beneficiază în ceea ce priveşte caracteristicele comune ale tipurilor abstracte de date.

Trebuie reţinut faptul că OOP constituie o metodă de proiectare şi implementare a programelor.

Tehnica OOP oferă:

- posibilitatea modularităţii obiectelor şi implementării programului în unităţi relativ independente care să fie uşor de întreţinut şi dezvoltat;

- partajarea codului între obiecte folosind moştenirea.

Astfel de tehnici OOP sunt mai uşor implementate apelând la un limbaj de programare. Un astfel de limbaj este şi limbajul C++ prezentat în această lucrare. Aplicaţiile au fost executate în Borland C++ 4.52.

Prezenta lucrare se adresează tuturor celor care doresc să folosească programarea orientată pe obiecte în activitatea lor de programare, beneficiind de tehnicile oferite de aceasta.

Autorul

LIMBAJUL DE PROGRAMARE C++ ŞI OOP.

CARACTERISTICI

- C++ este un limbaj de programare orientată pe obiecte. Acest limbaj constituie o versiune îmbogăţită a limbajului de programare C (o extensie sau un superset al lui C). Până în 1983 el se mai numea „C cu clase“.

- Să precizăm câteva din elementele specifice lui C++. Ele constau în extensii ale lui C cu privire la:

a) limbaj:

1. pentru o parcurgere facilă a codului sursă, se foloseşte un nou mod de prezentare a comentariilor;

2. se utilizează tipurile referinţă, care simplifică, din punct de vedere sintactic, transmiterea parametrilor prin referinţă;

3. se foloseşte supraîncărcarea operatorilor, cu scopul de a permite, în C++, să acţioneze asupra tipurilor abstracte de date definite de utilizator;

4. se foloseşte supraîncărcarea funcţiilor, care permite utilizarea mai multor funcţii cu acelaşi identificator, dar cu acţiuni diferite;

5. se utilizează funcţiile cu parametri impliciţi.

b) o tratare la nivel superior a tipurilor de date definite de utilizator ce constă în:

1. folosirea prototipurilor funcţiilor, care permit o bună verificare a tipurilor parametrilor, la apelul lor;

2. folosirea operatorilor de alocare dinamică a memoriei, care dau o precizie mai mare, în această operaţie;

3. verificarea transferului de parametri, printr-un control al tipurilor, la editarea de legături;

4. o nouă interfaţă intrare/ieşire (I/O), care dă o mai mare flexibilitate, a operaţiilor de citire / scriere;

5. existenţa unor rutine care permit conversia tipurilor definite de utilizator.

c) programarea orientată pe obiect (OOP) reflectată prin:

1. gruparea de date şi operaţii într-un acelaşi tip de date numit clasă;

2. un acces selectiv la elementele interne ale unei clase;

3. reutilizarea sau moştenirea unor clase prin clase derivate;

4. utilizarea funcţiilor virtuale, care dau un mijloc mai puternic de apelare al funcţiilor, în timpul execuţiei programului şi nu în timpul compilării lui;

5. utilizarea funcţiilor friend, care permit accesul din exteriorul unei clase, la elemente protejate din acea clasă;

6. utilizarea unor funcţii speciale într-o clasă numite constructori respectiv destructori, necesare pentru a iniţializa, respectiv a distruge, obiecte ale acelei clase.

- Necesitatea introducerii lui C++ se datorează şi creşterii complexităţii programelor (trecând de 25000 de linii de cod, un control în C devine anevoios). De la apariţie, C++ a trecut printr-o serie de revizuiri (1985, 1989, iar în 1994 se obţine standardul ANSI C++).

- C++ fiind un superset al lui C, permite compilarea unor programe ANSI C cu un compilator C++, luând în considerare unele aspecte specifice.

Preview document

C++ - Pagina 1
C++ - Pagina 2
C++ - Pagina 3
C++ - Pagina 4
C++ - Pagina 5
C++ - Pagina 6
C++ - Pagina 7
C++ - Pagina 8
C++ - Pagina 9
C++ - Pagina 10
C++ - Pagina 11
C++ - Pagina 12
C++ - Pagina 13
C++ - Pagina 14
C++ - Pagina 15
C++ - Pagina 16
C++ - Pagina 17
C++ - Pagina 18
C++ - Pagina 19
C++ - Pagina 20
C++ - Pagina 21
C++ - Pagina 22
C++ - Pagina 23
C++ - Pagina 24
C++ - Pagina 25
C++ - Pagina 26
C++ - Pagina 27
C++ - Pagina 28
C++ - Pagina 29
C++ - Pagina 30
C++ - Pagina 31
C++ - Pagina 32
C++ - Pagina 33
C++ - Pagina 34
C++ - Pagina 35
C++ - Pagina 36
C++ - Pagina 37
C++ - Pagina 38
C++ - Pagina 39
C++ - Pagina 40
C++ - Pagina 41
C++ - Pagina 42
C++ - Pagina 43
C++ - Pagina 44
C++ - Pagina 45
C++ - Pagina 46
C++ - Pagina 47
C++ - Pagina 48
C++ - Pagina 49
C++ - Pagina 50
C++ - Pagina 51
C++ - Pagina 52
C++ - Pagina 53
C++ - Pagina 54
C++ - Pagina 55
C++ - Pagina 56
C++ - Pagina 57
C++ - Pagina 58
C++ - Pagina 59
C++ - Pagina 60
C++ - Pagina 61
C++ - Pagina 62
C++ - Pagina 63
C++ - Pagina 64
C++ - Pagina 65
C++ - Pagina 66
C++ - Pagina 67
C++ - Pagina 68
C++ - Pagina 69
C++ - Pagina 70
C++ - Pagina 71
C++ - Pagina 72
C++ - Pagina 73
C++ - Pagina 74
C++ - Pagina 75
C++ - Pagina 76
C++ - Pagina 77
C++ - Pagina 78
C++ - Pagina 79
C++ - Pagina 80
C++ - Pagina 81
C++ - Pagina 82
C++ - Pagina 83
C++ - Pagina 84
C++ - Pagina 85
C++ - Pagina 86
C++ - Pagina 87
C++ - Pagina 88
C++ - Pagina 89
C++ - Pagina 90
C++ - Pagina 91
C++ - Pagina 92
C++ - Pagina 93
C++ - Pagina 94
C++ - Pagina 95
C++ - Pagina 96
C++ - Pagina 97
C++ - Pagina 98
C++ - Pagina 99
C++ - Pagina 100
C++ - Pagina 101
C++ - Pagina 102
C++ - Pagina 103
C++ - Pagina 104
C++ - Pagina 105
C++ - Pagina 106
C++ - Pagina 107
C++ - Pagina 108
C++ - Pagina 109
C++ - Pagina 110
C++ - Pagina 111
C++ - Pagina 112
C++ - Pagina 113
C++ - Pagina 114
C++ - Pagina 115
C++ - Pagina 116
C++ - Pagina 117
C++ - Pagina 118
C++ - Pagina 119
C++ - Pagina 120
C++ - Pagina 121
C++ - Pagina 122
C++ - Pagina 123
C++ - Pagina 124
C++ - Pagina 125
C++ - Pagina 126
C++ - Pagina 127
C++ - Pagina 128
C++ - Pagina 129
C++ - Pagina 130
C++ - Pagina 131
C++ - Pagina 132
C++ - Pagina 133
C++ - Pagina 134
C++ - Pagina 135
C++ - Pagina 136
C++ - Pagina 137
C++ - Pagina 138
C++ - Pagina 139
C++ - Pagina 140
C++ - Pagina 141
C++ - Pagina 142
C++ - Pagina 143
C++ - Pagina 144
C++ - Pagina 145
C++ - Pagina 146
C++ - Pagina 147
C++ - Pagina 148
C++ - Pagina 149
C++ - Pagina 150
C++ - Pagina 151
C++ - Pagina 152
C++ - Pagina 153
C++ - Pagina 154
C++ - Pagina 155
C++ - Pagina 156

Conținut arhivă zip

  • C++
    • Bibliografie.doc
    • C++1.doc
    • C++10.doc
    • C++11.doc
    • C++12.doc
    • C++13.doc
    • C++14.doc
    • C++2.doc
    • C++3.doc
    • C++4.doc
    • C++5.doc
    • C++6.doc
    • C++7.doc
    • C++8.doc
    • C++9.doc
    • CUPRINS.DOC
    • Introducere.doc

Alții au mai descărcat și

Laboratoare cibernetică

1. Obiective urmarite : Cunoasterea fizica principala si intelegerea functionarii unui sistem de reglare automata. (SRA) 2. Parte experimentala...

Java

Java este o tehnologie inovatoare lansata de compania Sun Microsystems 1n 1995, care a avut un impact remarcabil asupra a1ntregii comunitatsi a...

Circuite Electrice

Circuitele sunt prezente in foarte multe domenii tehnice: in sistemul electroenergetic, in calculatoare, in sistemele de telecomunicatii, in...

Semnale și Sisteme

Laboratorul 2. Semnale si sisteme. 1 Convolutii In teoria semnalelor si a sistemelor convolutiile joaca un rol important deoarece definesc...

Cursuri Java

Cuvinte importante: - concepte fundamentale ale programarii orientate obiect in Java: incapsulare, mostenire, polimorfism; - crearea claselor de...

Subiect examen Ingineria sistemelor de programe

Modele de ciclu de viata al dezvoltarii software 1. Modelul in cascada In modelul waterfall exista 5 etape care se succed si nu se repeta: -...

Baze de Date - SQL

În acest capitol vor fi prezentate pe larg comanda de interogare a datelor SELECT, comenzile de manipulare a datelor INSERT, UPDATE, DELETE, precum...

Ai nevoie de altceva?