Eu am lucrat mult in C (aproape un an) si acum am trecut din nou in C++ pt ca ofera mult mai multe (mai ales STL). O sa iti scriu aici diferentele majore intre C si C++
1. Alocare dinamica.
a) In C doar cu malloc, realloc si calloc:
int *a;
a = (int*) malloc(1000 * sizeof(a[0]));
b) In C++: merge atat cu malloc, realloc si calloc, cat si cu new:
int *a;
a = new int [1000];
c) Tot in C++ se poate si cu vectori STL:
vector<int> a;
a.resize(1000);
2. Citire.
In C se poate doar cu scanf / fscanf si printf / fprintf, in C++ se poate ca in C dar si cu streamuri. cu cin si cout. In general toate lucrurile care merg in C merg si in C++, invers nu neaparat.
3. Declararea structurilor.
a) In C:
struct ghitza{
int a, b;
};
struct ghitza x; // trebuie pus si struct cand declaram
typedef struct ghitza ghitza; // daca punem un typedef, merge ca in C++
ghitza x;
b) In C++
struct ghitza{
int a,b;
};
ghitza x; // observam ca merge fara typedef
4. STL si clase.
a) In C nu exista
b) In C++ exista
5. Apelarea functiilor cu variabile de tip adresa:
a) In C++
int ghitza(int &a){
a = 2;
}
ghitza (x);
b) In C
int ghitza(int *a){
(*a) = 2;
}
ghitza(&x);
6. Alte diferente:
In C nu poti declara intr-o functie variabile intr-un for, trebuie toate declarate la inceputul functiei, nu poti face ceva de genul:
for (int i = 2; i <= 5; ++i);
Depinde de ce vrobesti sintaxa ,de functii de sistem sau mod de programare, de eleborare de algoritmi
Daca inca ati ramas la functiile din DOS.H e grav.. Atat in C si C++ se pot accesa functiile de sistem cu system("comanda"), modul de programare e mult mai usor in C++, datorita STL-ului, iar diferentele de sintaxa (singurele cred) le-am scris mai sus.
Spor