Diferența de bază: C și C ++ sunt două limbi de programare diferite. C ++ a fost dezvoltat din limbajul de programare C; totuși ele sunt destul de diferite în natură. Cea mai evidentă diferență este că C este un limbaj orientat spre procedură, în timp ce C ++ suportă atât programarea orientată pe procedură, cât și pe cea orientată pe obiecte, de aceea se numește de multe ori o limbă hibridă.

C este una dintre cele mai vechi limbi de programare utilizate în prezent și este una dintre cele mai utilizate limbi de programare. Acesta a fost utilizat în mod constant în aplicațiile care au codificat anterior în limba de asamblare. Acesta include sistemul de operare pentru calculatoare UNIX. C, de asemenea, a influențat direct sau indirect o mulțime de limbi de programare ulterioare, cum ar fi C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python și shell-ul C de Unix. În ciuda tuturor acestor limbi noi, C rămâne un limbaj de programare popular.
C ++ a început inițial ca un accesoriu la C. Ea a fost proiectată să fie compatibilă cu sursa și link-ul cu C. Totuși, a adăugat clase, funcții virtuale, supraîncărcare operator, moștenire multiplă, șabloane, manipulare excepții etc. suficient pentru a fi considerat un limbaj de programare în sine. Acesta a fost inițial ratificat în 1998 ca limbă de programare certificată ISO / IEC 14882: 1998. Astăzi, C ++ este acum utilizat în mod curent pentru proiectarea hardware.
C este un limbaj de programare cu scop general care folosește semicolonul (;) ca terminator al instrucțiunilor, precum și brațele curl ({}) pentru gruparea blocurilor de instrucțiuni. Dispune de facilități pentru programarea structurată, iar designul său oferă construcții care pot hărți eficient instrucțiunile tipice ale mașinii. De asemenea, permite domeniul variabil lexical și recursivitatea și are un sistem de tip static, care previne multe operații neintenționate.
Cu toate acestea, în comparație cu C ++, C are numeroase limitări. Deoarece C nu este orientat obiect, nu susține conceptele OOPS. C nu suportă supraîncărcarea funcției și a operatorului. Nu poate folosi funcții în interiorul structurilor. Nu suportă funcțiile virtuale și variabilele de referință sau manipularea excepțiilor. De asemenea, nu suportă variabilele de referință. În plus, C de asemenea nu încapsularea sau securizarea datelor. În comparație, C ++ acceptă toate aceste caracteristici.

Cele două limbi diferă de asemenea în modul în care funcționează memoria de adrese, intrarea-ieșire și programarea GUI. De exemplu, C folosește funcțiile calloc (), malloc () și free () pentru alocarea și de-alocarea memoriei, în timp ce C ++ utilizează noi și șterge. C utilizează scanf () și printf () pentru intrare și ieșire, în timp ce C ++ utilizează operatorii cin >> și cout <<. C suportă instrumentul GTK pentru programarea GUI, în timp ce C ++ suportă instrumentele Qt pentru programarea GUI. O altă diferență este că C cere ca unul să declare toate variabilele din partea de sus a programului, în timp ce în C ++, variabilele pot fi declarate oriunde în program.
În plus, C ++ este de obicei considerat mai ușor de învățat, deoarece este mai ușor de utilizat decât C. C ++ are, de asemenea, numeroase funcții suplimentare care fac mai ușor codarea, mai ales pentru cineva care este nou în cadrul C. Cu toate acestea, mulți susțin că nu contează. Cele două limbi diferă atât de mult încât pot fi de fapt două limbi diferite independente una de cealaltă. Un lucru de retinut este ca C este mult mai structurat decat C ++, in timp ce C ++ a fost conceput sa fie mai expresiv si abstract decat C.
Comparație între C și C ++:
C | C ++ | |
Fondat | Dezvoltat de Dennis Ritchie la AT & T Bell Labs între 1969 și 1973. | Dezvoltat de Bjarne Stroustrup la Bell Labs începând din 1979. |
Cod sursa | Cod sursă cu format liber | Dezvoltat inițial din limba de programare C |
Limba | Procedură Limba orientată | Sprijină atât paradigme de programare orientate spre procedură, cât și obiect; de aceea se numește adesea un limbaj hibrid. |
Abordare | Urmează abordarea de sus în jos. | Urmează abordarea de jos în sus. |
Relaţie | C este un subset al C ++. Nu poate rula codul C ++. | C ++ este un superset de C. C ++ poate rula majoritatea codului C in timp ce C nu poate rula codul C ++. |
Conduce | Limbă bazată pe funcții | Obiectiv-limbaj |
concentra | Se concentrează mai degrabă pe metodă sau pe proces decât pe date. | Se concentrează mai degrabă pe date decât pe metodă sau pe procedură. |
Blocuri de construcție | funcţii | Obiecte |
Cuvinte cheie | Conține 32 de cuvinte cheie | Conține 52 de cuvinte cheie |
Concepte OOPS | Deoarece limbajul "C" este un limbaj orientat spre procedură, acesta nu acceptă concepte OOPS cum ar fi clasa, obiectul, moștenirea, polimorfismul, ascunderea datelor etc. | Ca limbaj orientat obiect, C ++ suporta clasa, obiectul, ascunderea datelor, polimorfismul, moștenirea, abstractizarea, etc. |
funcţii |
|
|
Funcțiile de memorie | Utilizează funcțiile calloc (), malloc () și free () pentru alocarea și de-alocarea memoriei. | Utilizează operatorii noi și șterge în același scop. |
încapsularea | Nu sustine. Datele și funcțiile sunt entități separate și libere. | Susține încapsularea. Datele și funcțiile sunt încapsulate împreună sub forma unui obiect. Obiectul clasa oferă un model al structurii obiectului. |
Informația se ascunde | C nu suportă ascunderea informațiilor. Aici, datele sunt entități libere și pot fi manipulate de codul exterior. | Encapsularea ascunde datele pentru a se asigura că structurile de date și operatorii sunt utilizați conform destinației. |
Date | Sprijină tipurile de date încorporate și primitive. Datele nu sunt securizate din cauza orientării non-obiect | Suportă atât tipurile de date încorporate, cât și definite de utilizator. Datele sunt securizate (ascunse) în C ++ |
Nivel | Nivel redus de limbă | Limba de nivel mediu |
Intrare ieșire | Limba "C" utilizează scanf () și printf () pentru intrare și ieșire. | Limba "C ++" utilizează operatorii cin >> și cout << pentru intrare și ieșire. |
Declarația variabilelor | C necesită declararea tuturor variabilelor din partea de sus a programului. | În C ++, variabilele pot fi declarate oriunde în program înainte de utilizare. |
Declarație multiplă | Declarația multiplă a variabilelor globale este permisă. | Declarația multiplă a variabilelor globale nu este permisă. |
Cartografierea | Maparea între Date și Funcție este dificilă și complicată. | Maparea între date și funcții poate fi utilizată utilizând "Obiecte" |
Programare GUI | C acceptă instrumentul GTK pentru programarea GUI | C ++ acceptă instrumentele Qt pentru programarea GUI |
Moştenire | Moștenirea nu este posibilă în C | Moștenirea este posibilă în C ++ |
File Extension | Are extensia de fișier .c | Are extensia de fișier .cpp |
Fișierul antetului implicit | Fișierul antet implicit utilizat în limba C este stdio.h | Fișierul antetului implicit utilizat în C ++ este iosteam.h |
Câteva exemple de diferențe între C și C ++:
Exemple | C | C ++ |
Declarație variabilă | Doar în partea de sus: int i; pentru (i = 10; i <10; i ++) | Oriunde în program: pentru (int i = 10; i <10; i ++) |
Alocare de memorie | malloc: int * x = malloc (dimensiunea (int)); int * x_array = malloc (dimensiunea (int) * 10); | Nou: int * x = int noi; int * x_array = nou int [10]; |
Eliberarea memoriei | Liber: gratuit (x); gratuit (x_array); | Șterge: ștergeți x; ștergeți [] x_array; |