This shows you the differences between two versions of the page.
|
poo-is-ab:laboratoare:02 [2025/10/01 21:16] razvan.cristea0106 [Diferențe C/C++] |
poo-is-ab:laboratoare:02 [2025/10/11 17:42] (current) razvan.cristea0106 [Diferențe C/C++] |
||
|---|---|---|---|
| Line 12: | Line 12: | ||
| ==== Introducere ==== | ==== Introducere ==== | ||
| - | În cadrul acestui laborator vom evidenția principalele diferențe dintre limbajele C și C++. Vom analiza, prin exemple simple, modul în care C++ extinde caracteristicile limbajului C și vom pune bazele unei înțelegeri mai profunde a acestuia. Astfel, vom avea un punct de plecare solid pentru paradigma **Orientată Obiect (OO)** pe care o vom studia începând cu laboratorul următor. | + | În cadrul acestui laborator vom evidenția principalele diferențe dintre limbajele C și C++. Vom analiza, prin exemple simple, modul în care C++ extinde caracteristicile limbajului C și vom pune bazele unei înțelegeri mai profunde a acestuia. Astfel, vom avea un punct de plecare solid pentru paradigma **Orientată Obiect (OO)** pe care o vom studia începând cu laboratorul următor. Pentru a înțelege diferențele dintre cele două limbaje mai întâi ar trebui să știm care sunt asemănările, iar pentru asta recomandăm citirea [[poo-is-ab:laboratoare:01| laboratorului 1]]. |
| ==== Diferențe C/C++ ==== | ==== Diferențe C/C++ ==== | ||
| Line 472: | Line 472: | ||
| === Funcții cu același nume === | === Funcții cu același nume === | ||
| - | În C++ avem avantajul de a declara funcții, procedeu cunoscut sub numele de **supraîncărcare a funcțiilor**, cu **același nume** dar care să difere prin **numărul și/sau tipul parametrilor**. Această modalitate de declarare a funcțiilor este cunoscută în **Programarea Orientată Obiect** sub numele de **polimorfism**, care în limba greacă înseamnă **multe forme**. Vom oferi mai multe detalii pe parcursul întregului semestru despre acest principiu al **POO**. | + | În C++ avem posibilitatea de a declara funcții cu **același nume** dar care să difere prin **numărul și/sau tipul parametrilor**, acest procedeu fiind cunoscut și sub numele de **supraîncărcare a funcțiilor**. Această modalitate de declarare a funcțiilor este cunoscută în **Programarea Orientată Obiect** sub numele de **polimorfism**, care în limba greacă înseamnă **multe forme**. Vom oferi mai multe detalii pe parcursul întregului semestru despre acest principiu al **POO**. |
| Să urmărim exemplul de cod de mai jos care ilustrează polimorfismul a patru funcții. | Să urmărim exemplul de cod de mai jos care ilustrează polimorfismul a patru funcții. | ||
| Line 513: | Line 513: | ||
| ==== Concluzii ==== | ==== Concluzii ==== | ||
| - | Prin parcurgerea acestui laborator, putem spune cu certitudine că limbajul C++ reprezintă o evoluție firească a limbajului C, adăugând numeroase concepte și mecanisme care ne fac munca de programatori mai simplă și mai expresivă. Am văzut că librăria **fstream**, alocarea dinamică realizată într-un mod simplificat, introducerea referințelor, posibilitatea de a supraîncărca funcții și suportul pentru **Programarea Orientată Obiect** diferențiază C++ de C și ne oferă un cadru mai flexibil pentru dezvoltarea aplicațiilor. Totuși, este important să reținem că C++ rămâne compatibil cu C la nivel de bază, ceea ce îl face un limbaj versatil, potrivit atât pentru stilul **procedural**, cât și pentru cel **orientat pe obiecte**. | + | Prin parcurgerea acestui laborator, putem spune cu certitudine că limbajul C++ reprezintă o evoluție firească a limbajului C, adăugând numeroase concepte și mecanisme care ne fac munca de programatori mai simplă și mai expresivă. Am văzut că librăria **fstream**, alocarea dinamică realizată într-un mod simplificat, introducerea referințelor, posibilitatea de a supraîncărca funcții și suportul pentru **Programarea Orientată Obiect** diferențiază C++ de C și ne oferă un cadru mai flexibil pentru dezvoltarea aplicațiilor. Totuși, este important să reținem faptul că C++ rămâne compatibil cu C la nivel de bază, ceea ce îl face un limbaj versatil, potrivit atât pentru stilul **procedural**, cât și pentru cel **orientat pe obiecte**. |