This shows you the differences between two versions of the page.
poo-is-ab:laboratoare:01 [2024/10/03 09:06] razvan.cristea0106 [Concluzii] |
poo-is-ab:laboratoare:01 [2025/01/19 22:27] (current) razvan.cristea0106 |
||
---|---|---|---|
Line 12: | Line 12: | ||
==== Introducere ==== | ==== Introducere ==== | ||
- | În acest laborator vom face o scurtă recapitulare a noțiunilor de bază învățate în limbajul C și vom vedea care sunt diferențele în linii mari dintre limbajele C și C++. Noi vom scrie programe în C++ pe întreg parcursul acestui semestru, deoarece vom învăța o nouă paradigmă de programare și anume cea __**Orientată Obiect (OO)**__. | + | În acest laborator vom face o scurtă recapitulare a noțiunilor de bază învățate în anul întâi la disciplina **Programarea Calculatoarelor și Limbaje de Programare (PCLP)** și vom vedea care sunt diferențele în linii mari dintre limbajele C și C++. Noi vom scrie programe în C++ pe întreg parcursul acestui semestru, deoarece vom învăța o nouă paradigmă de programare și anume cea **Orientată Obiect (OO)**. |
==== Scurt Istoric ==== | ==== Scurt Istoric ==== | ||
Line 762: | Line 762: | ||
La fel ca în C, în C++ putem declara variabile constante folosind cuvântul cheie **const**. Așa cum le spune și numele variabilele constante sunt cele care odată inițializate cu o valoare **nu** mai pot fi modificate. | La fel ca în C, în C++ putem declara variabile constante folosind cuvântul cheie **const**. Așa cum le spune și numele variabilele constante sunt cele care odată inițializate cu o valoare **nu** mai pot fi modificate. | ||
- | <note warning>O variabilă constantă se ințializează pe linia unde a fost **declarată** altfel va genera o eroare de compilare</note> | + | <note warning>O **variabilă constantă** se ințializează pe linia unde a fost **declarată** altfel va genera o eroare de compilare.</note> |
== Utilizarea keyword-ului const pe variabile obișnuite == | == Utilizarea keyword-ului const pe variabile obișnuite == | ||
Line 835: | Line 835: | ||
=== Citirea și afișarea variabilelor === | === Citirea și afișarea variabilelor === | ||
- | În C erați obișnuiți să citiți și să afișați variabilele utilizând funcțiile **scanf** și **printf**. În C++ vom folosi operatorul **>>** pentru citire și operatorul **<<** pentru afișare. | + | În C erați obișnuiți să citiți și să afișați variabilele utilizând funcțiile **scanf** și **printf**. În C++ vom folosi operatorul **%%>>%%** pentru citirea datelor de la tastatură sau din fișiere și operatorul **%%<<%%** pentru afișarea datelor în fișiere sau consolă. |
- | == Citirea și afisarea în C == | + | == Citirea și afișarea în C == |
<code c> | <code c> | ||
Line 855: | Line 855: | ||
</code> | </code> | ||
- | == Citirea și afisarea în C++ == | + | == Citirea și afișarea în C++ == |
<code cpp> | <code cpp> | ||
Line 1190: | Line 1190: | ||
Funcția afisareVector folosește referințe constante la pointeri (const int* const& v), pentru a garanta că atât adresa vectorului, cât și conținutul acestuia nu vor fi modificate în timpul afișării, menținând integritatea datelor. | Funcția afisareVector folosește referințe constante la pointeri (const int* const& v), pentru a garanta că atât adresa vectorului, cât și conținutul acestuia nu vor fi modificate în timpul afișării, menținând integritatea datelor. | ||
- | <note important>C++ introduce posibilitatea de a inițializa pointerii cu **nullptr**, care este specific doar pentru acest tip de date. Acesta funcționează similar cu **NULL**, dar cu un avantaj important: **nullptr** este un tip de date dedicat **pointerilor**, ceea ce previne atribuirea sa accidentală altor tipuri de variabile, cum se putea întâmpla cu **NULL** în C++. În C++, **NULL** este definit doar ca un **macro** care reprezintă valoarea 0 și poate fi atribuit chiar și variabilelor care nu sunt pointeri, lucru care poate duce la erori neintenționate.</note> | + | <note important>C++ introduce posibilitatea de a inițializa pointerii cu **nullptr**, care este specific doar pentru acest tip de date. Acesta funcționează similar cu **NULL**, dar cu un avantaj important: **nullptr** este un tip de date dedicat **pointerilor**, ceea ce previne atribuirea sa accidentală altor tipuri de variabile, cum se putea întâmpla cu **NULL** în C++. În C++, **NULL** este definit doar ca un **macro** care reprezintă valoarea 0 și poate fi atribuit chiar și variabilelor care nu sunt pointeri, lucru care poate duce la confuzii nedorite.</note> |
<code cpp> | <code cpp> |