Ključna razlika: C i C ++ su dva različita jezika za programiranje računala. C ++ je razvijen iz programskog jezika C; međutim, oni su po prirodi prilično različiti. Najočiglednija razlika je u tome što je C jezik orijentiran na proceduru, dok C ++ podržava i proceduralno i objektno orijentirano programiranje, stoga se često naziva hibridnim jezikom.
C je jedan od najstarijih programskih jezika koji se trenutno koristi i jedan je od najčešće korištenih programskih jezika. Neprestano se koristi u aplikacijama koje su prethodno kodirane u asemblerskom jeziku. To uključuje operacijski sustav UNIX računala. C je izravno ili neizravno utjecao na mnoge kasnije programske jezike, kao što su C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python i Unix C ljusku. Unatoč svim tim novim jezicima, C i dalje ostaje popularan programski jezik.
C ++ je izvorno započeo kao poboljšanje C. On je bio dizajniran da bude kompatibilan s izvorima i vezama sa C. Međutim, dodao je klase, virtualne funkcije, preopterećenje operatora, višestruko nasljeđivanje, predloške, rukovanje iznimkama, itd. dovoljno da se smatra programskim jezikom. Izvorno je ratificiran 1998. kao ISO / IEC 14882: 1998 certificirani programski jezik. Danas se C ++ obično koristi za dizajn hardvera.
C je programski jezik opće namjene koji koristi točku-zarez (;) kao terminator izraza, kao i vitičaste zagrade ({}) za grupiranje blokova izraza. Posjeduje objekte za strukturirano programiranje i njegov dizajn osigurava konstrukcije koje mogu učinkovito mapirati tipične strojne upute. Također omogućuje leksičku varijablu opsega i rekurzije i ima statičan sustav tipa, koji sprječava mnoge nenamjerne operacije.
Međutim, u usporedbi sa C ++, C ima brojna ograničenja. Budući da C nije objektno orijentiran, on ne podržava OOPS koncepte. C ne podržava preopterećenje funkcije i operatora. Ne može koristiti funkcije unutar struktura. Ne podržava virtualne funkcije i referentne varijable ili rukovanje iznimkama. Također ne podržava referentne varijable. Osim toga, C također ne enkapsulira ili osigurava podatke. Za usporedbu, C ++ podržava sve ove značajke.
Dva jezika također se razlikuju po načinu rada memorije adrese, input-outputa i GUI programiranja. Na primjer, C koristi funkcije calloc (), malloc () i free () za dodjelu i raspodjelu memorije, dok C ++ koristi nove i briše. C koristi scanf () i printf () za ulaz i izlaz, dok C ++ koristi cin >> i cout << operatore. C podržava GTK alat za programiranje GUI-a, dok C ++ podržava Qt alate za programiranje GUI-ja. Druga razlika je u tome što C zahtijeva da proglasimo sve varijable na vrhu programa, dok se u C ++ varijable mogu deklarirati bilo gdje u programu.
Osim toga, C ++ se obično smatra lakšim za učenje, budući da je on lakši za korištenje od C. C ++ također ima brojne dodatne funkcije koje olakšavaju kodiranje, posebno za nekoga tko je nov u C okviru. Međutim, mnogi tvrde da je doista važno. Ta se dva jezika toliko razlikuju da zapravo mogu biti dva različita jezika međusobno neovisna. Jedna stvar koju treba imati na umu je da je C mnogo strukturiraniji od C ++-a, dok je C ++ osmišljen tako da bude izražajniji i apstraktniji od C.
Usporedba između C i C ++:
C | C ++ | |
Osnovan | Razvio ga je Dennis Ritchie u laboratoriju AT&T Bell između 1969. i 1973. godine. | Razvio ga je Bjarne Stroustrup u Bell Labsu od 1979. godine. |
Izvorni kod | Izvorni kod programa slobodnog formata | Izvorno razvijen iz programskog jezika C |
Jezik | Postupak Orijentiran jezik | Podržava proceduralne i objektno orijentirane paradigme programiranja; stoga se često naziva hibridnim jezikom. |
Pristup | Slijedi pristup od vrha prema dolje. | Slijedi pristup odozdo prema gore. |
Odnos | C je podskup C ++-a. Ne može pokrenuti C ++ kod. | C ++ je nadskup od C. C ++ može pokrenuti većinu C koda dok C ne može pokrenuti C ++ kod. |
Voziti | Jezik kojim upravljaju funkcije | Object-driven jezik |
Fokus | Fokusira se na metodu ili proces, a ne na podatke. | Fokusira se na podatke umjesto na metodu ili postupak. |
Građevni blokovi | funkcije | objekti |
ključne riječi | Sadrži 32 ključne riječi | Sadrži 52 ključne riječi |
OOPS koncepti | Kao 'C' jezik je postupak orijentiran na jezik, on ne podržava OOPS koncepte kao što su klasa, objekt, nasljeđivanje, polimorfizam, skrivanje podataka itd. | Kao objektno orijentirani jezik, C ++ podržava klasu, objekt, skrivanje podataka, polimorfizam, nasljeđivanje, apstrakciju itd. |
funkcije |
|
|
Funkcije memorije | Koristi funkcije calloc (), malloc () i free () za dodjelu i raspodjelu memorije. | Koristi operatore novim i brišu za istu svrhu. |
ovijanje | Ne podržava. Podaci i funkcije su odvojeni i slobodni entiteti. | Podržava enkapsulaciju. Podaci i funkcije enkapsulirani su zajedno u obliku objekta. Klasa objekata pruža nacrt strukture objekta. |
Skrivanje informacija | C ne podržava skrivanje informacija. Ovdje su podaci besplatni entiteti i njima se može upravljati vanjskim kodom. | Inkapsulacija skriva podatke kako bi se osiguralo da se strukture podataka i operatori koriste kako je namijenjeno. |
Podaci | Podržava ugrađene i primitivne vrste podataka. Podaci nisu osigurani zbog ne-objektno orijentiranog | Podržava ugrađene i korisnički definirane vrste podataka. Podaci su zaštićeni (skriveni) u C ++ |
nivo | Jezik niskih razina | Jezik na srednjoj razini |
Ulaz izlaz | 'C' jezik koristi scanf () i printf () za ulaz i izlaz. | 'C ++' jezik koristi cin >> i cout << operatore za ulaz i izlaz. |
Deklaracija varijabli | C zahtijeva da se sve varijable na vrhu programa deklariraju. | U C ++, varijable se mogu deklarirati bilo gdje u programu prije uporabe. |
Više deklaracija | Dopuštena je višestruka deklaracija globalnih varijabli. | Višestruka deklaracija globalnih varijabli nije dopuštena. |
kartografija | Mapiranje podataka i funkcija je teško i komplicirano. | Mapiranje između podataka i funkcija može se koristiti pomoću "Objekti" |
Programiranje GUI-ja | C podržava GTK alat za programiranje GUI-a | C ++ podržava Qt alate za programiranje GUI-a |
baština | Nasljeđivanje nije moguće u C | Nasljeđivanje je moguće u C ++ |
Ekstenzija datoteke | Ima datotečni nastavak .c | Ima datotečni nastavak .cpp |
Zadana datoteka zaglavlja | Zadana datoteka zaglavlja koja se koristi u jeziku C je stdio.h | Zadana datoteka zaglavlja koja se koristi u C ++ je iosteam.h |
Neki primjeri razlika između C i C ++:
Primjeri | C | C ++ |
Deklaracija varijable | Samo na vrhu: int i; za (i = 10; i <10; i ++) | Bilo gdje u programu: za (int i = 10; i <10; i ++) |
Dodjela memorije | malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Novi: int * x = novo int; int * x_array = novi int [10]; |
Otpuštanje memorije | Besplatno: slobodno (x); besplatno (x_array); | Izbrisati: izbriši x; delete [] x_array; |