Ključna razlika: C in C ++ sta dva različna računalniška programska jezika. C ++ je bil razvit iz programskega jezika C; vendar so po naravi precej drugačne. Najbolj očitna razlika je v tem, da je C jezik, usmerjen v postopek, medtem ko C ++ podpira procesno in objektno usmerjeno programiranje, zato ga pogosto imenujemo hibridni jezik.
C je eden najstarejših programskih jezikov, ki se trenutno uporablja, in je eden najbolj razširjenih programskih jezikov. Nenehno se uporablja v aplikacijah, ki so bile predhodno kodirane v zbirnem jeziku. To vključuje računalniški operacijski sistem UNIX. C je neposredno ali posredno vplival na veliko poznejših programskih jezikov, kot so C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python in Unix C lupino. Kljub vsem tem novim jezikom C ostaja še vedno priljubljen programski jezik.
C ++ se je prvotno začel kot izboljšava C. Ustvarjen je bil kot vir in povezava, združljiv s C. Vendar pa je dodal razrede, navidezne funkcije, preobremenitev operaterja, večkratno dedovanje, predloge, obdelavo izjem, itd. dovolj, da se lahko šteje za programski jezik. Prvotno je bila ratificirana leta 1998 kot programski jezik ISO / IEC 14882: 1998. C ++ se danes pogosto uporablja za oblikovanje strojne opreme.
C je programski jezik za splošne namene, ki uporablja podpičje (;) kot terminator izrazov, kot tudi zavite oklepaje ({}) za združevanje blokov stavkov. Ima zmogljivosti za strukturirano programiranje in njegova zasnova zagotavlja konstrukte, ki lahko učinkovito preslikajo tipična strojna navodila. Omogoča tudi leksikalno spremenljivko obsega in rekurzije in ima statični sistem tipa, ki preprečuje številne nenamerne operacije.
Vendar ima C v primerjavi s C ++ številne omejitve. Ker C ni objektno usmerjen, ne podpira konceptov OOPS. C ne podpira funkcije in preobremenitve operaterja. Ne more uporabljati funkcij znotraj struktur. Ne podpira virtualnih funkcij in referenčnih spremenljivk ali obdelave izjem. Prav tako ne podpira referenčnih spremenljivk. Poleg tega C tudi ne zapakira ali varuje podatkov. V primerjavi s tem C ++ podpira vse te funkcije.
Dva jezika se med seboj razlikujeta tudi glede na funkcije pomnilnika naslovov, vhodnega izhoda in programiranja GUI. Na primer, C uporablja funkcije calloc (), malloc () in free () za dodeljevanje in razdeljevanje pomnilnika, medtem ko C ++ uporablja nove in brisanje. C uporablja scanf () in printf () za vhod in izhod, medtem ko C ++ uporablja cin >> in cout << operatorje. C podpira GTK orodje za programiranje GUI, medtem ko C ++ podpira Qt orodja za programiranje GUI. Druga razlika je v tem, da C zahteva, da deklariramo vse spremenljivke na vrhu programa, medtem ko lahko v C ++ spremenljivke deklariramo kjerkoli v programu.
Poleg tega se C ++ običajno šteje za lažje za učenje, saj je uporabniku prijaznejši od C. C ++ ima tudi številne dodatne funkcije, ki olajšajo kodiranje, še posebej za nekoga, ki je nov v C okviru. Vendar mnogi trdijo, da je dejansko pomembna. Dva jezika se tako zelo razlikujeta, da sta dejansko lahko dva različna jezika, ki sta neodvisna drug od drugega. Ne smemo pozabiti, da je C veliko bolj strukturiran kot C ++, medtem ko je bil C ++ zasnovan tako, da je bolj ekspresiven in abstrakten kot C.
Primerjava med C in C ++:
C | C ++ | |
Ustanovljeno | Razvil ga je Dennis Ritchie v laboratoriju AT&T Bell med 1969 in 1973. | Leta 1979 je razvil Bjarne Stroustrup pri Bell Labs. |
Izvorna koda | Programska koda prostega formata | Prvotno razvit iz programskega jezika C |
Jezik | Jezik, usmerjen v postopek | Podpira procesne in objektno usmerjene paradigme programiranja; zato se pogosto imenuje hibridni jezik. |
Pristop | Sledi pristopu od zgoraj navzdol. | Sledi pristopu od spodaj navzgor. |
Odnos | C je podmnožica C ++. Ne more izvajati kode C ++. | C ++ je nadskup C. C ++ lahko zažene večino C kode, medtem ko C ne more zagnati C ++ kode. |
Vozite | Funkcionalni jezik | Objektno usmerjen jezik |
Osredotočite se | Osredotoča se na metodo ali proces in ne na podatke. | Osredotoča se na podatke in ne na metodo ali postopek. |
Gradniki | Funkcije | Predmeti |
Ključne besede | Vsebuje 32 ključnih besed | Vsebuje 52 ključnih besed |
Koncepti OOPS | Ker je jezik "C" jezik, usmerjen v postopek, ne podpira konceptov OOPS, kot so razred, predmet, dedovanje, polimorfizem, skrivanje podatkov itd. | C ++ kot objektno usmerjen jezik podpira razred, objekt, skrivanje podatkov, polimorfizem, dedovanje, abstrakcijo itd. |
Funkcije |
|
|
Funkcije pomnilnika | Uporablja funkcije calloc (), malloc () in free () za dodeljevanje in razdeljevanje pomnilnika. | Uporablja operaterje nove in brisanje za isti namen. |
Inkapsulacija | Ne podpira. Podatki in funkcije so ločeni in prosti subjekti. | Podpira enkapsulacijo. Podatki in funkcije so združeni v obliki predmeta. Razredni predmeti zagotavljajo načrt strukture objekta. |
Skrivanje informacij | C ne podpira skrivanja informacij. Tu so podatki brezplačni subjekti in jih je mogoče manipulirati z zunanjo kodo. | Encapsulation skriva podatke za zagotovitev, da se podatkovne strukture in operaterji uporabljajo, kot je bilo predvideno. |
Podatki | Podpira vgrajene in primitivne podatkovne tipe. Podatki niso zavarovani zaradi neciljne usmerjenosti | Podpira tako vgrajene kot uporabniško definirane podatkovne tipe. Podatki so zavarovani (skriti) v C ++ |
Raven | Jezik nizke ravni | Jezik na srednji ravni |
Vhodno-izhodni | "C" jezik uporablja scanf () in printf () za vhod in izhod. | Jezik C ++ za operaterje input in output uporablja cin >> in cout << operatorje. |
Izjava o spremenljivkah | C zahteva, da deklariramo vse spremenljivke na vrhu programa. | V C ++ lahko spremenljivke pred uporabo deklariramo kjerkoli v programu. |
Več deklaracij | Dovoljena je večkratna deklaracija globalnih spremenljivk. | Večkratna deklaracija globalnih spremenljivk ni dovoljena. |
Preslikava | Kartiranje med podatki in funkcijo je težko in zapleteno. | Preslikava med podatki in funkcijo se lahko uporabi z "Objects" |
Programiranje GUI | C podpira GTK orodje za programiranje GUI | C ++ podpira Qt orodja za programiranje GUI |
Dedovanje | Dedovanje pri C ni mogoče | Dedovanje je možno v C ++ |
Razširitev datoteke | Ima pripono datoteke .c | Ima pripono datoteke .cpp |
Privzeta glava datoteke | Privzeta glava datoteke v jeziku C je stdio.h | Privzeta glava datoteke, uporabljena v C ++, je iosteam.h |
Nekateri primeri razlike med C in C ++:
Primeri | C | C ++ |
Deklaracija spremenljivk | Samo na vrhu: int i; za (i = 10; i <10; i ++) | Kjerkoli v programu: za (int i = 10; i <10; i ++) |
Dodelitev pomnilnika | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Novo: int * x = novo int; int * x_array = novo int [10]; |
Sprostitev pomnilnika | Prost: prosto (x); brezplačno (x_array); | Izbriši: izbriši x; delete [] x_array; |