Hlavní rozdíl: C a C ++ jsou dva různé programovací jazyky. C ++ byl vyvinut z programovacího jazyka C; avšak jsou naprosto odlišné. Nejvíce zřejmý rozdíl je v tom, že C je procedurálně orientovaný jazyk, zatímco C ++ podporuje procedurální i objektově orientované programování, proto se často nazývá hybridním jazykem.
C je jedním z nejstarších používaných programovacích jazyků a je jedním z nejrozšířenějších programovacích jazyků. Byl používán neustále v aplikacích, které byly dříve kódovány v jazyce sestavení. To zahrnuje operační systém počítače UNIX. C také přímo nebo nepřímo ovlivnilo mnoho pozdějších programovacích jazyků, jako jsou C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python a C shell společnosti Unix. Přes všechny tyto nové jazyky zůstává C stále populárním programovacím jazykem.
C ++ původně začalo jako vylepšení pro C. Bylo navrženo tak, aby bylo kompatibilní s kódem source-link s funkcí C. Přidávalo to třídy, virtuální funkce, přetížení operátorů, dědičná dědičnost, šablony, zpracování výjimek apod. natolik, aby byl považován za programovací jazyk sám o sobě. Původně byla v roce 1998 schválena jako programovací jazyk certifikovaný podle ISO / IEC 14882: 1998. Dnes je C ++ běžně používán pro návrh hardwaru.
C je obecný programovací jazyk, který používá jako bodový terminátor poloviční bod (;), stejně jako křivé příchytky ({}) pro seskupování bloků příkazů. Má zařízení pro strukturované programování a jeho konstrukce poskytuje konstrukce, které mohou efektivně mapovat typické pokyny k strojům. Umožňuje také lexikální variabilní rozsah a rekurzi a má systém statického typu, který zabraňuje mnoha neúmyslným operacím.
Nicméně ve srovnání s C ++ má C mnoho omezení. Protože C není objektově orientovaný, nepodporuje koncepce OOPS. C nepodporuje funkci a přetížení obsluhy. Nemůže používat funkce uvnitř struktur. Nepodporuje virtuální funkce a referenční proměnné nebo zpracování výjimek. Rovněž nepodporuje referenční proměnné. Navíc C také nezapojuje ani nezajišťuje data. Ve srovnání, C ++ podporuje všechny tyto funkce.
Tyto dva jazyky se také liší způsobem, jakým jsou funkce paměti adresy, vstupní výstupy a programování GUI. Například C používá funkce calloc (), malloc () a free () pro přidělování a vyřazování paměti, zatímco C ++ využívá nové a odstraní. C využívá scanf () a printf () pro vstup a výstup, zatímco C ++ používá operátory cin >> a cout <<. C podporuje program GTK pro programování GUI, zatímco C ++ podporuje Qt nástroje pro programování GUI. Jiný rozdíl spočívá v tom, že C vyžaduje, aby každý prohlásil všechny proměnné v horní části programu, zatímco v jazyce C ++ mohou být proměnné deklarovány kdekoliv v programu.
Kromě toho se C ++ obvykle považuje za jednodušší, protože je uživatelsky přívětivější než C. C ++ má také řadu dalších funkcí, které usnadňují kódování, zvláště pro někoho, kdo je nový v rámci C. Mnoho lidí však tvrdí, že to skutečně záleží. Tyto dva jazyky se liší tak, že mohou ve skutečnosti být dva různé jazyky nezávislé na sobě. Jedna věc, kterou je třeba mít na paměti, je, že C je mnohem strukturovanější než C ++, zatímco C ++ byl navržen tak, aby byl výraznější a abstraktnější než C.
Srovnání mezi C a C ++:
C | C ++ | |
Založený | Vyvinutý Dennisem Ritchiem v AT & T Bell Labs v letech 1969 až 1973. | Vyvinutý Bjarne Stroustrup v Bell Labs od roku 1979. |
Zdrojový kód | Zdrojový kód volného formátu programu | Původně vyvinutý z programovacího jazyka C. |
Jazyk | Postup orientovaný jazyk | Podporuje procedurální i objektově orientované programovací paradigmy; proto se často nazývá hybridním jazykem. |
Přístup | Sleduje přístup shora dolů. | Sleduje přístup zdola nahoru. |
Vztah | C je podmnožina C ++. Nelze spustit kód C ++. | C ++ je nadmnožinou C. C ++ může spustit většinu kódu C, zatímco C nemůže spustit kód C ++. |
Řídit | Funkční jazyk | Jazyk orientovaný na objekt |
Soustředit se | Zaměřuje se spíše na metodu nebo proces než na data. | Zaměřuje se na data spíše než na metodu nebo proceduru. |
Stavební bloky | Funkce | Objekty |
Klíčová slova | Obsahuje 32 klíčových slov | Obsahuje 52 klíčových slov |
Koncepty OOPS | Protože jazyk C je procedurálně orientovaný jazyk, nepodporuje koncepty OOPS, jako je třída, objekt, dědičnost, polymorfismus, skrytí dat atd. | Jako objektově orientovaný jazyk podporuje C ++ třídu, objekt, skrytí dat, polymorfismus, dědičnost, abstrakci apod. |
Funkce |
|
|
Funkce paměti | Využívá funkce calloc (), malloc () a free () pro přidělování a vyřazování paměti. | Používá operátory nové a odstraňuje pro tentýž účel. |
Zapouzdření | Nepodporuje. Data a funkce jsou samostatné a volné entity. | Podporuje zapouzdření. Data a funkce jsou zapouzdřeny dohromady ve formě objektu. Třída objektů poskytuje strukturu objektu. |
Informace se skrývají | C nepodporuje skrytí informací. Zde jsou data volné entity a mohou být manipulovány externím kódem. | Zapouzdření skryje data tak, aby bylo zajištěno, že datové struktury a operátory jsou používány podle určení. |
Data | Podporuje vestavěné a primitivní datové typy. Data nejsou zajištěna kvůli orientaci bez objektů | Podporuje vestavěné i uživatelsky definované datové typy. Data jsou v C ++ zabezpečená (skrytá) |
Úroveň | Jazyk nízké úrovně | Středně pokročilý jazyk |
Vstup výstup | Jazyk "C" používá scanf () a printf () pro vstup a výstup. | Jazyk "C ++" používá operátory cin >> a cout << pro vstup a výstup. |
Prohlášení o proměnných | C vyžaduje, aby jeden deklaroval všechny proměnné v horní části programu. | V jazyce C ++ mohou být proměnné deklarovány kdekoliv v programu před použitím. |
Více prohlášení | Více deklarací globálních proměnných je povoleno. | Více prohlášení o globálních proměnných není povoleno. |
Mapování | Mapování mezi daty a funkcemi je obtížné a komplikované. | Mapování mezi daty a funkcemi lze použít pomocí "objektů" |
Programování GUI | C podporuje nástroj GTK pro programování GUI | C ++ podporuje Qt nástroje pro programování GUI |
Dědictví | Dědictví není možné v C | Dědictví je možné v jazyce C ++ |
Přípona souboru | Má příponu souboru .c | Má příponu souboru .cpp |
Výchozí soubor záhlaví | Výchozí soubor záhlaví používaný v jazyce C je stdio.h | Výchozí soubor záhlaví používaný v C ++ je iosteam.h |
Některé příklady rozdílu mezi C a C ++:
Příklady | C | C ++ |
Prohlášení o proměnných | Pouze nahoře: int i; pro (i = 10; i <10; i ++) | Kdekoli v programu: pro (int i = 10; i <10; i ++) |
Přidělení paměti | Malloc: int * x = malloc (velikostof (int)); int * x_array = malloc (velikostof (int) * 10); | Nový: int * x = nový int; int * x_array = nový int [10]; |
Uvolnění paměti | Volný, uvolnit: zdarma (x); zdarma (x_array); | Smazat: delete x; odstranit [] x_array; |