Hlavný rozdiel: C a C ++ sú dva rôzne počítačové programovacie jazyky. C + + bol vyvinutý z programovacieho jazyka C; avšak sú úplne odlišné. Najzrejmejším rozdielom je, že C je procedurálny jazyk, zatiaľ čo C ++ podporuje procedurálne aj objektovo orientované programovanie, preto sa často nazýva hybridný jazyk.
C je jedným z najstarších používaných programovacích jazykov a je jedným z najpoužívanejších programovacích jazykov. Bolo neustále používané v aplikáciách, ktoré boli predtým kódované v assemblerovom jazyku. Zahŕňa operačný systém počítača UNIX. C tiež priamo alebo nepriamo ovplyvnil veľa neskorších programovacích jazykov, ako napríklad C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python a shell C od Unixu. Napriek všetkým týmto jazykom zostáva C stále populárny programovací jazyk.
C ++ sa pôvodne začalo ako vylepšenie pre C. Bolo navrhnuté tak, aby bolo zdrojovo a vertikálne kompatibilné s C, ale pridalo triedy, virtuálne funkcie, preťaženie operátora, viacnásobné dedičstvo, šablóny, spracovanie výnimiek atď. dosť na to, aby sa mohol považovať za programovací jazyk. Bola pôvodne schválená v roku 1998 ako programovací jazyk certifikovaný podľa ISO / IEC 14882: 1998. Dnes je C ++ bežne používaný pre návrh hardvéru.
C je univerzálny programovací jazyk, ktorý používa bodkočiarkou (;) ako koncovku výkazov, ako aj kučeravé zátvorky ({}) pre zoskupovanie blokov výkazov. Má vybavenie pre štruktúrované programovanie a jeho konštrukcia poskytuje konštrukty, ktoré dokážu efektívne mapovať typické strojové inštrukcie. Umožňuje tiež lexikálny premenlivý rozsah a rekurziu a má systém statického typu, ktorý zabraňuje mnohým neúmyselným operáciám.
Avšak v porovnaní s C ++, C má mnoho obmedzení. Keďže objekt C nie je objektovo orientovaný, nepodporuje koncepcie OOPS. C nepodporuje funkciu a preťaženie operátora. Nemôže používať funkcie vo vnútri štruktúr. Nepodporuje virtuálne funkcie a referenčné premenné alebo spracovanie výnimiek. Rovnako nepodporuje referenčné premenné. Okrem toho C taktiež nemá zapuzdrenie alebo zabezpečenie dát. Na porovnanie, C ++ podporuje všetky tieto funkcie.
Tieto dva jazyky sa tiež líšia v spôsobe fungovania pamäťovej adresy, vstupného výstupu a programovania GUI. Napríklad C používa funkcie calloc (), malloc () a free () pre alokáciu a de-alokáciu pamäte, zatiaľ čo C ++ využíva nové a odstráni. C používa scanf () a printf () pre vstup a výstup, zatiaľ čo C ++ používa operátory cin >> a cout <<. C podporuje nástroj GTK pre programovanie GUI, zatiaľ čo C ++ podporuje Qt nástroje pre programovanie GUI. Ďalším rozdielom je, že C vyžaduje, aby sa všetky premenné na vrchu programu deklarovali, zatiaľ čo v C ++ sa môžu premenné deklarovať kdekoľvek v programe.
Okrem toho sa C ++ zvyčajne považuje za ľahšie sa učiť, pretože je viac užívateľsky prívetivý ako C. C ++ má tiež mnoho ďalších funkcií, ktoré uľahčujú kódovanie, najmä pre niekoho, kto je nový v rámci C. Mnohí však tvrdia, že skutočne záleží. Tieto dva jazyky sa veľmi líšia, že môžu byť v skutočnosti dva odlišné jazyky nezávislé od seba. Jedna vec, ktorú treba mať na pamäti, je, že C je oveľa štruktúrovanejšie ako C ++, zatiaľ čo C ++ je navrhnutý tak, aby bol výraznejší a abstraktnejší ako C.
Porovnanie medzi C a C ++:
C | C ++ | |
založený | Vyvinutý Dennis Ritchie v spoločnosti AT & T Bell Labs v rokoch 1969 až 1973. | Vyvinutý Bjarne Stroustrup v spoločnosti Bell Labs od roku 1979. |
Zdrojový kód | Zdrojový kód voľného formátu programu | Pôvodne vyvinutý z programovacieho jazyka C |
Jazyk | Postup Orientovaný jazyk | Podporuje procedurálne aj objektovo orientované programovacie paradigmy; preto sa často nazýva hybridný jazyk. |
Prístup | Sleduje prístup zhora nadol. | Sleduje prístup zdola nahor. |
súvislosť | C je podmnožina C ++. Nemôže spustiť kód C ++. | C ++ je nadmnožina C. C ++ môže spustiť väčšinu kódu C, zatiaľ čo C nemôže spustiť kód C ++. |
pohon | Funkčne ovládaný jazyk | Jazyk orientovaný na objekt |
ohnisko | Zameriava sa viac na metódu alebo proces než na údaje. | Zameriava sa skôr na údaje než na metódu alebo postup. |
Stavebné bloky | funkcie | objektov |
Kľúčové slová | Obsahuje 32 kľúčových slov | Obsahuje 52 kľúčových slov |
Koncepty OOPS | Keďže jazyk C je procedurálne orientovaný jazyk, nepodporuje pojmy OOPS, ako je trieda, objekt, dedičnosť, polymorfizmus, skrytie údajov atď. | Ako objektovo orientovaný jazyk C ++ podporuje triedu, objekt, skrytie dát, polymorfizmus, dedičnosť, abstrakciu atď. |
funkcie |
|
|
Funkcie pamäte | Používa funkcie calloc (), malloc () a free () pre prideľovanie a vyradenie pamäte. | Používa nových operátorov a odstráni ich na rovnaký účel. |
zapuzdrenie | Nepodporuje. Údaje a funkcie sú samostatné a slobodné subjekty. | Podporuje zapuzdrenie. Dáta a funkcie sú zapuzdrené spolu vo forme objektu. Trieda objektov poskytuje štruktúru štruktúry objektu. |
Informácie sa skrývajú | C nepodporuje skrytie informácií. Tu sú údaje voľné entity a môžu byť manipulované externým kódom. | Zapuzdrenie skrýva dáta, aby sa zabezpečilo, že dátové štruktúry a operátory sa použijú podľa určenia. |
údaje | Podporuje vstavané a primitívne dátové typy. Údaje nie sú zabezpečené kvôli orientácii bez objektov | Podporuje vstavané aj dátové typy definované používateľmi. Údaje sú zabezpečené (skryté) v jazyku C ++ |
hladina | Jazyk nízkej úrovne | Jazyk strednej úrovne |
Vstup výstup | Jazyk "C" používa scanf () a printf () pre vstup a výstup. | Jazyk "C ++" používa operátory cin >> a cout << pre vstup a výstup. |
Vyhlásenie premenných | C vyžaduje, aby sa všetky premenné v hornej časti programu deklarovali. | V jazyku C ++ môžu byť premenné deklarované kdekoľvek v programe pred použitím. |
Viacnásobné vyhlásenie | Viac deklarácia globálnych premenných je povolená. | Viacnásobné vyhlásenie globálnych premenných nie je povolené. |
mapovanie | Mapovanie medzi údajmi a funkciami je náročné a komplikované. | Mapovanie medzi údajmi a funkciami môže byť použité pomocou "objektov" |
Programovanie grafického rozhrania | C podporuje nástroj GTK pre programovanie grafického rozhrania | C ++ podporuje Qt nástroje pre programovanie GUI |
dedičstvo | Dedičstvo nie je možné v C | Dedičstvo je možné v C ++ |
Rozšírenie súboru | Má príponu súboru .c | Má príponu súboru .cpp |
Predvolený súbor záhlavia | Predvolený súbor záhlavia používaný v jazyku C je stdio.h | Predvolený súbor hlavičiek používaný v C ++ je iosteam.h |
Niektoré príklady rozdielov medzi C a C ++:
Príklady | C | C ++ |
Prehlásenie o premenných | Iba v hornej časti: int i; pre (i = 10, i <10, i ++) | Kdekoľvek v programe: pre (int i = 10; i <10; i ++) |
Prideľovanie pamäte | malloc: int * x = malloc (veľkosť (int)); int * x_array = malloc (veľkosťof (int) * 10); | Nový: int * x = nový int; int * x_array = nový int [10]; |
Uvoľnenie pamäte | Zadarmo: free (x); free (x_array); | zmazať: odstrániť x; odstrániť [] x_array; |