Sunteți pe pagina 1din 9

1 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

Analiza comparativa standard C vs C++


De Olariu Alexandru Răzvan
Seria B; Grupa 1007.

Atunci când vorbim despre C și C++ vorbim despre limbaje de programare ce au stat la
baza a milioane de aplicații și au inspirat mii de oameni și de programatori din întreaga
lume!

Limbajul de programare C a fost introdus lumii în anul 1972 de către Dennis Ritchie în
laboratoarele de la AT&T din Statele Unite ale Americii.
A fost inventat ca o soluție a problemelor ce apăruseră atunci în alte limbaje de
programare precum B, BCPL.

Limbajul de programare C++ a fost introdus lumii in anul 1979, atunci când Bjarne
Stroustrup își realiza lucrarea de doctorat. Inițial, C++ se chema „C with Classes” ce,
evident, era limbajul de programare C cu un super set de clase.
A fost inventat ca o versiune mai „superioara” a C-ului, de aici și numele de C++ (C + 1)

Caracteristici ale limbajului C:


 Procedural.
 Bottom-up Approach.
 Nu suportă clase și obiecte.
 Suportă lucrul cu pointeri.
Caracteristici ale limbajului C++:
 Orientat pe obiecte.
 Bottom-up Approach.
 E mai rapid în multe instanțe față de C.
 Are o librărie standard mult mai bogată.

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


2 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

Diferențele cheie dintre C și C++ sunt următoarele:

 # 1) Tip de programare:
 C este un limbaj procedural în care programul se învârte în jurul funcțiilor.
Întreaga problemă este defalcată în numeroase funcții. Principalul obiectiv al
programului este pus pe funcții sau proceduri pentru a finaliza lucrurile.
 C ++, dimpotrivă, este un limbaj de programare orientat pe obiecte. Aici datele
problemei sunt accentul principal, iar clasele sunt construite în jurul acestor date.
Funcțiile funcționează pe date și sunt strâns legate de date.

 # 2) Abordare de programare:
 Deoarece C este un limbaj procedural, urmează o abordare de sus în jos a
programării. Aici luăm problema și apoi o împărțim în subprobleme până vom
găsi unice subprobleme care pot fi rezolvate direct. Apoi combinăm soluțiile
pentru a obține soluția principală.
 C ++ urmează o abordare de jos în sus a programării. În acest fel, începem cu
designul sau codarea la nivel scăzut și apoi ne bazăm pe acest design la nivel
scăzut pentru a obține o soluție la nivel înalt.

 # 3) Dezvoltarea aplicațiilor:
 Limbajul C este util în programarea sistemelor încorporate sau a implementărilor
la nivel scăzut.
 C ++, pe de altă parte, este mai potrivit pentru aplicații din server, aplicații de
rețea sau pentru aplicații precum jocuri etc.

 # 4) Extensia fișierului:
 Programele scrise în C sunt de obicei salvate cu extensia „.c” în timp ce
programele C ++ sunt salvate cu extensia „.cpp”.

 # 5) Compatibilitate între ele:


 C ++ este un subset de C pe măsură ce este dezvoltat și preia majoritatea
constructelor sale procedurale din limbajul C. Astfel, orice program C va compila
și funcționa bine cu compilatorul C ++.
 Cu toate acestea, limbajul C nu acceptă caracteristicile C ++ orientate pe obiect
și, prin urmare, nu este compatibil cu programele C ++. Prin urmare, programele
scrise în C ++ nu vor rula pe compilatoare C.

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


3 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

 # 6) Compatibilitate cu alte limbi:


 limbajul C ++ este în general compatibil cu alte limbaje de programare generice,
dar limbajul C nu.

 # 7) Ușurătatea codificării:
 Putem spune că C este un limbaj hands-on și îl putem programa în orice mod
dorim. C ++ constă în unele construcții de programare la nivel înalt, orientate pe
obiect, care ne ajută să codificăm programe la nivel înalt.
 Astfel, dacă spunem C este ușor, atunci C ++ este de asemenea mai ușor de
codat.

 # 8) Securitatea datelor:
 În C, accentul principal este pus pe funcții sau proceduri și nu pe date. Prin
urmare, în ceea ce privește securitatea datelor, este neglijabil în C.
 În C ++, deoarece avem de-a face cu clase și obiecte, principalul bloc de
construcție al programului este Data. Astfel, datele sunt bine securizate folosind
clase, specificatori de acces, încapsulare etc.

 # 9) Divizia programului:
 Un program în C este împărțit în funcții și module. Aceste funcții și module sunt
apoi numite de funcția principală sau alte funcții pentru executare.
 Un program C ++ este împărțit în clase și obiecte. Problema este proiectată în
clase, iar obiectele acestor clase sunt unitățile de execuție care sunt create de
funcțiile principale și sunt executate.

 # 10) Operațiuni standard de I / O:


 Operațiile standard de intrare-ieșire în C pentru citirea / scrierea datelor de la / la
dispozitivul standard sunt „scanf” și, respectiv, „printf”.
 În C ++, datele sunt citite de pe dispozitivul de intrare standard folosind „cin” în
timp ce acestea sunt tipărite pe dispozitivul de ieșire folosind „cout”.

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


4 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

 # 11) Focus / Accentuare:


 Fiind un limbaj procedural, C pune mai mult accent pe succesiunea pașilor sau a
procedurilor pentru rezolvarea unei probleme.
 C ++, pe de altă parte, este orientat pe obiecte și pune astfel mai mult accent pe
obiecte și clase în jurul cărora soluția urmează să fie construită.

 # 12) Funcția principală ():


 În C ++ nu putem apela o funcție principală () din orice alt punct. Funcția
principală () este punctul de execuție unic.
 Cu toate acestea, în limbajul C, putem avea o funcție principală () numită de
celelalte funcții din cod.

 # 13) Variabilă:
 Variabilele trebuie declarate la începutul blocului de funcții în C, dimpotrivă,
putem declara variabile oriunde într-un program C ++, cu condiția să fie declarate
înainte de a fi utilizate în cod.

 # 14) Variabile globale:


 Limbajul C permite declarații multiple ale variabilelor globale. Cu toate acestea,
C ++ nu permite mai multe declarații de variabile globale.

 # 15) Pointeri și variabile de referință:


 Indicatoarele sunt variabilele care indică adresele de memorie. Atât C cât și C ++
suportă indicatoarele și diverse operații efectuate pe indicatoare.
 Referințele acționează ca alias pentru variabile și indică aceeași locație de
memorie ca o variabilă.
 Limbajul C acceptă doar indicatoarele și nu referințele. C ++ acceptă indicatoare,
precum și referințe.

 # 16) Enumerații:
 Putem declara enumerări în C, precum și în C ++. Dar în C, constantele de
enumerare sunt de tipul întreg. Este la fel ca declararea unei constante întregi
fără niciun fel de siguranță.
 În C ++, enumerațiile sunt diferite. Sunt de tipuri distincte. Astfel, pentru a aloca
un tip întreg unei variabile de tip enumerat, avem nevoie de conversie explicită
de tip.

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


5 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

 Cu toate acestea, putem atribui o valoare enumerată unei variabile de tip întreg,
întrucât tipul enumerat permite promovarea integrală sau conversia implicită.

 # 17) Strings:
 În ceea ce privește șirurile, declarația „char []” declară un șir de șiruri. Dar când
șirul declarat mai sus este trecut între funcții, atunci nu există nicio garanție că nu
va fi modificat de celelalte funcții externe, deoarece aceste șiruri sunt mutabile.
 Acest dezavantaj nu există în C ++, deoarece C ++ acceptă tipul de date de șir
care definește șirurile imuabile.

 # 18) Funcție în linie:


 Funcțiile inline nu sunt acceptate în C. C funcționează de obicei cu macro-uri
pentru a accelera execuția. Pe de altă parte, în C ++, sunt utilizate funcții inline,
precum și macro-uri.

Mai jos, vă prezint o analiza comparativă asupra tuturor aspectelor dintre C și C++
(Engleză)

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


No Characteristics C C++

1 6 Olariu
Type Alexandru Răzvan – AnalizăProcedural
of programming comparativălanguage
standardele C și C++ Object-Oriented programming
language.

2 Programming Approach Top-down approach Bottom-up approach

3 Application development Good for embedded devices, Good for networking, server-side
system-level coding etc. applications, gaming, etc.

4 File Extension .c .cpp

5 Compatibility with each other Not Compatible with C++. Compatible with C as C++ is a
subset of C.

6 Compatibility with other Not compatible Compatible


languages

7 Ease of coding Allows us to code everything. Comes with highly advanced Object-
Oriented concepts.

8 Data Security Negligible High

9 Program division Program divided into Program divided into classes and
functions. objects.

10 Standard I/O operations scanf/printf cin/cout

11 Focus/emphasis Emphasizes on functions Emphasizes on data rather than


and/or processes. functions.

12 The main() function Can call main through other Not possible to call main from any
functions. point.

13 Variables To be declared at the Can be declared anywhere in the


beginning of the function. program.

14 Global variables Multiple declarations No multiple declarations.

15 Reference Variables and Only Pointers Both


pointers

16 Enumerations Only integer types. Distinct type

17 Strings Supports only char[] Supports string class which is


immutable.

18 Inline function Not supported Supported

19 Default arguments Not supported Supported

20 Structures Cannot have functions as Can have functions as structure


structure members. members.

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


7 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

21 Classes and Objects Not supported Supported

22 Data Types Only built-in and primitive data Boolean and string types supported
types are supported. in addition to built-in data types.
No Boolean and string types.

23 Function overloading Not supported Supported

24 Inheritance Not supported Supported

25 Functions Does not support functions Supports functions with default


with default arrangements. arrangements.

26 Namespace Not supported Supported

27 Source code Free-format Originally taken from C plus object-


oriented.

28 Abstraction Not present Present

29 Information hiding Not supported Supported

30 Encapsulation Not supported Supported

31 Polymorphism Not supported Supported

32 Virtual function Not supported Supported

33 GUI programming Using the Gtk tool. Using the Qt tools.

34 Mapping Cannot easily map data and Data and functions can be easily
functions. mapped.

35 Memory management Malloc(), calloc(), free() New() and delete() operators.


functions.

36 Default headers Stdio.h iostream header

37 Exception/error handling No direct support. Supported

38 Keywords Supports 32 keywords. Supports 52 keywords.

39 Templates Not supported Supported

Mai jos vom analiza sintaxe


de cod intre C si C++

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


8 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B


9 Olariu Alexandru Răzvan – Analiză comparativă standardele C și C++

In concluzie, ori că învățam C sau C++, ambele limbaje de programare ne învață bazele
programării calculatoarelor si cu înțelegerea bibliotecilor si a sintaxei, putem ajunge
chiar să fim programatori de succes ( sau membrii GOLD MSP @ ASE )

Bibliografie: geeksforgeeks.org și cplusplus.com Grupa 1007, Seria B

S-ar putea să vă placă și