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