A C és C ++ közötti különbség példákkal Programozási nyelvek

A legfontosabb különbség: C és C ++ két különböző számítógépes programozási nyelv. A C ++ -ot a C programozási nyelvből fejlesztették ki; ugyanakkor a természetben teljesen eltérőek. A legnyilvánvalóbb különbség az, hogy a C egy eljárásorientált nyelv, míg a C ++ mind az eljárási, mind az objektum-orientált programozást támogatja, ezért gyakran hibrid nyelvnek nevezik.

A C és C ++ két különböző számítógépes programozási nyelv. A C-t eredetileg Dennis Ritchie fejlesztette ki az AT&T Bell Labs-ben 1969 és 1973 között. A C ++ egy másik általános célú programozási nyelv. Az eredeti C programozási nyelvből készült. A Bjarne Stroustrup 1979-től kezdte meg a Bell Labs-ben. A C ++-t eredetileg C osztályúnak nevezték, mivel a C alapja volt. 1983-ban átnevezték C ++-ra.

A C a legrégebben használt programozási nyelvek egyike, és az egyik legelterjedtebb programozási nyelv. Ezt folyamatosan alkalmazták olyan alkalmazásokban, amelyek előzőleg összeszerelési nyelven kódoltak. Ez magában foglalja a UNIX számítógép operációs rendszerét is. A C szintén közvetlenül vagy közvetve befolyásolta a későbbi programozási nyelveket, mint például a C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python és Unix C-héjait. Mindezen új nyelvek ellenére a C továbbra is népszerű programozási nyelv.

A C ++ eredetileg a C kiegészítésként indult. A C és C közötti forráskapcsolatot tervezték. Ugyanakkor osztályokat, virtuális funkciókat, operátor túlterhelést, többszörös öröklést, sablonokat, kivételkezelést, stb. elég ahhoz, hogy önállóan programozási nyelvnek minősüljön. Eredetileg 1998-ban ratifikálták, mint ISO / IEC 14882: 1998 minősített programozási nyelv. Ma a C ++ már általánosan használt a hardvertervezésben.

A C egy általános célú programozási nyelv, amely a pontosvesszőt használja a pontosvesszővel (;), valamint a mondatok blokkolására szolgáló göndör zárójelek ({}). A rendszer strukturált programozási lehetőségekkel rendelkezik, és kialakítása olyan konstrukciókat kínál, amelyek hatékonyan térképezhetik a tipikus gépi utasításokat. Lehetővé teszi a lexikális változó hatókört és rekurziót, és statikus típusú rendszerrel rendelkezik, amely megakadályozza a nem szándékolt műveleteket.

A C ++ -hoz képest azonban a C számos korlátozással rendelkezik. Mivel a C nem objektumorientált, nem támogatja az OOPS fogalmakat. A C nem támogatja a funkciót és a kezelő túlterhelését. Nem tudja használni a struktúrák belső funkcióit. Nem támogatja a virtuális funkciókat és a referencia változókat, vagy a kivételkezelést. Nem támogatja a referencia változókat is. Ezen túlmenően a C nem kapszulázást vagy adatbiztosítást is. Összehasonlításképpen, a C ++ támogatja ezeket a funkciókat.

Továbbá a C nem támogatja a NAMESPACE funkciót, míg a C ++. A névtér olyan végleges régió, amely lehetővé teszi az azonosítók csoportosítását (típusok, funkciók, változók stb. Nevét). A névterek a kódok logikai csoportokba rendezésére és a név ütközések megelőzésére használhatók. Ez különösen akkor hasznos, ha a kódbázis több könyvtárat is tartalmaz, amelyek ideális esetben a kódot hajlamosak az ütközések megnevezésére.

A két nyelv is különbözik attól, hogy a címtár-memória funkciók, a bemeneti kimenet és a GUI programozás milyen módon történik. Például a C calloc (), malloc () és szabad () függvényeket használ fel a memória felosztására és kiosztására, míg a C ++ új és törlést használ. C a scanf () és printf () -t használja bemeneti és kimeneti célokra, míg a C ++ a cin >> és cout << operátorokat használja. C támogatja a GTK eszközt a GUI programozáshoz, míg a C ++ támogatja a Qt eszközöket a GUI programozáshoz. A másik különbség az, hogy a C megköveteli, hogy a program tetején minden változót deklaráljon, míg a C ++-ban a változók a programban bárhol jeleníthetők meg.

Továbbá a C ++-t általában könnyebb megtanulni, mivel a felhasználóbarátabb, mint a C. C ++-nak számos további funkciója is van, amelyek megkönnyítik a kódolást, különösen a C-keretrendszerben új felhasználók számára. Sokan azonban azt állítják, hogy valójában számít. A két nyelv annyira különbözik egymástól, hogy valójában két egymástól független nyelv lehet. Ne feledje, hogy a C sokkal strukturáltabb, mint a C ++, míg a C ++ kifejezettebb és absztraktabb, mint a C.

C és C ++ összehasonlítása:

C

C ++

Alapított

Dennis Ritchie fejlesztette ki az AT&T Bell Labs 1969 és 1973 között.

A Bjarne Stroustrup 1979-től kezdve a Bell Labs-ben fejlesztette ki.

Forráskód

Szabad formátumú program forráskódja

Eredetileg a C programozási nyelvből lett kifejlesztve

Nyelv

Eljárásorientált nyelv

Támogatja mind az eljárási, mind az objektum-orientált programozási paradigmákat; ezért gyakran hibrid nyelvnek nevezik.

Megközelítés

A felülről lefelé irányuló megközelítést követi.

Az alulról felfelé irányuló megközelítést követi.

Kapcsolat

A C a C ++ egy részhalmaza. Nem futtathatja a C ++ kódot.

A C ++ a C. C ++ felülírója, a C-kódot pedig a legtöbb C futtathatja, míg a C nem tudja futtatni a C ++ kódot.

Hajtás

Funkcionális nyelv

Objektum-alapú nyelv

Fókusz

A módszerre vagy folyamatra összpontosít, nem pedig az adatokra.

Elsősorban az adatokra vagy az eljárásra összpontosít.

Építőkockák

Funkciók

tárgyak

Kulcsszavak

32 kulcsszót tartalmaz

52 kulcsszót tartalmaz

OOPS fogalmak

Mivel a „C” nyelv az eljárásorientált nyelv, nem támogatja az OOPS-fogalmakat, mint például az osztály, az objektum, az öröklés, a polimorfizmus, az adatok elrejtése stb.

Objektum-orientált nyelvként a C ++ támogatja az osztályt, az objektumot, az adatok elrejtését, a polimorfizmust, az öröklést, az absztrakciót stb.

Funkciók

  • Nem támogatja a funkciót és a kezelő túlterhelését.
  • A struktúrák belső funkciói nem használhatók
  • Nem támogatja a virtuális funkciókat és a referencia változókat
  • Nem támogatja a kivétel kezelését
  • nem támogatja a referencia változókat
  • nem rendelkezik névtér funkcióval
  • más funkciók segítségével hívhatja a fő () függvényt
  • Támogatja a funkciót és a kezelő túlterhelését.
  • Használhatja a struktúrák belső funkcióit
  • Támogatja a virtuális funkciókat és a referencia változókat.
  • Támogatja a kivételkezelést a próbálkozás és a fogás blokk segítségével. Kivételeket használnak a "kemény" hibákhoz, amelyek hibásak a kódot.
  • támogatja a referencia változókat
  • a NAMESPACE funkciót használja, amely elkerüli a névütközéseket.
  • más funkciók segítségével nem hívhatja a fő () függvényt.

Memória funkciók

Calloc (), malloc () és szabad () függvényeket használ a memória felosztására és felosztására.

Új és új operátorokat használ ugyanarra a célra.

Encapsulation

Nem támogatja. Az adatok és funkciók külön és szabad entitások.

Támogatja a kapszulázást. Az adatok és funkciók egy objektum formájában együtt vannak kapszulázva. Az objektumok osztálya az objektum szerkezetének vázlatát mutatja.

Információk elrejtése

A C nem támogatja az információ elrejtését. Itt az adatok szabad entitások, és külső kóddal manipulálhatók.

A kapszulázás elrejti az adatokat annak biztosítása érdekében, hogy az adatszerkezeteket és az operátorokat a tervezett módon használják.

Adat

Támogatja a beépített és primitív adattípusokat.

Az adatok nem biztosíthatók nem objektum-orientáltak miatt

Támogatja a beépített és a felhasználó által definiált adattípusokat is.

Az adatok a C ++-ban vannak rögzítve (rejtve)

Szint

Alacsony szintű nyelv

Középszintű nyelv

Bemenet kimenet

A „C” nyelv a scanf () -t és a printf () -t használja a bemenet és a kimenet számára.

A „C ++” nyelv a cin >> és cout << operátorokat használja a bemenet és a kimenet számára.

A változók nyilatkozata

A C megköveteli, hogy minden változót a program tetején deklaráljon.

A C ++-ban a változók a programban bárhol megadhatók a használat előtt.

Többszörös nyilatkozat

A globális változók többszörös nyilatkozata megengedett.

A globális változók többszörös nyilatkozata nem megengedett.

térképészet

Az adatok és a funkciók közötti leképezés nehéz és bonyolult.

Az adatok és a függvény közötti leképezés használható az "Objektumok" használatával

GUI programozás

C támogatja a GTK eszközt a GUI programozáshoz

A C ++ támogatja a Qt eszközöket a GUI programozáshoz

Öröklés

Az öröklés C-ben nem lehetséges

Az öröklés C ++-ban lehetséges

Fájlkiterjesztés

Fájlkiterjesztése .c

Fájlkiterjesztés van .cpp

Alapértelmezett fejlécfájl

A C nyelvben használt alapértelmezett fejlécfájl a stdio.h

A C ++ alapértelmezett fejlécfájlja az iosteam.h

Néhány példa a C és C ++ közötti különbségre:

Példák

C

C ++

Változó nyilatkozat

Csak a tetején:

int i;

(i = 10; i <10; i ++)

Bárhol a programban:

(int i = 10; i <10; i ++)

Memóriaelosztás

malloc:

int * x = malloc (mérete (int));

int * x_array = malloc (méret (int) * 10);

Új:

int * x = új int;

int * x_array = új int [10];

Memória felszabadítása

Ingyenes:

szabad (x);

szabad (x_array);

Töröl:

x törlése;

[] x_array törlése;

Ajánlott

Kapcsolódó Cikkek

  • népszerű összehasonlítások: A vezetéknév és a vezetéknév közötti különbség

    A vezetéknév és a vezetéknév közötti különbség

    Kulcskülönbség: A vezetéknév családi névként is ismert. A vezetéknév az a családnév, amelyet egy személy más családtagokkal oszt meg. Általában egy generációról a másikra halad. A vezetéknév általában a vezetéknévre vonatkozik. A legtöbb társadalomban a vezetéknevet a vezetéknév követi. A vezetéknév meghatározásának l
  • népszerű összehasonlítások: A kickbox és a boksz közötti különbség

    A kickbox és a boksz közötti különbség

    A legfontosabb különbség: a Kickboxing és a Boxing egymás rokonai, de nem hasonlítanak egymáshoz. Ahogy a neve is sugallja, a Kickboxing rúgásokkal és ökölvívással kapcsolatos, míg a Boxing csak a bokszozással jár, és nem rúg. A kickbox és a Boxing mindketten nagy kardiovaszkuláris gyakorlatok. A Kickboxing egy rú
  • népszerű összehasonlítások: A jövedelem és a nyereség közötti különbség

    A jövedelem és a nyereség közötti különbség

    Kulcsfontosságú különbség: A jövedelem egy adott időszak alatt a bevételek teljes beáramlása. Ez általában a béreket, a kamatokat, a bérleti díjat és a nyereséget tartalmazza. A nyereség úgy határozható meg, hogy az a többlet, amely a teljes költség levonása után maradt a teljes bevételből. A jövedelem és a nyereség
  • népszerű összehasonlítások: A Bank és a Credit Union közötti különbség

    A Bank és a Credit Union közötti különbség

    Főbb különbség: A bankok magántulajdonban lévő intézmények, amelyek banki szolgáltatásokat nyújtanak ügyfeleiknek. A hitelszövetkezetek olyan nonprofit intézmények, amelyek a tagok tulajdonában vannak és működnek. A bankok és a hitelszövetkezetek természetükben meglehetősen hasonlóak, mivel mindkettő pénzügyi szolgáltatásokat nyújt, mint például megtakarítási számlák és lakáshitelek. Azonban nagyon különböző jellemzőkben
  • népszerű összehasonlítások: A kibocsátás és az abszorpciós spektrumok közötti különbség

    A kibocsátás és az abszorpciós spektrumok közötti különbség

    Főbb különbség: A kibocsátás az anyag azon képessége, hogy fényt adjon ki, amikor kölcsönhatásba lép a hővel. Az abszorpció a kibocsátás ellentéte, ahol az energia, a fény vagy a sugárzás egy adott anyag elektronjaiból felszívódik. A kémia és a fizika területén alkalmazott emissziós és abszorpciós spektrumok. A spektroszkópia a sugárzás é
  • népszerű összehasonlítások: Különbség a Kindle és az iPad Mini között

    Különbség a Kindle és az iPad Mini között

    Főbb különbség: A Kindle egy e-book olvasó. Olyan eszköz, amely lehetővé teszi a könyvek, újságok, magazinok, blogok letöltését és olvasását. Másrészről az iPad Mini egy mini (kis) tabletta, melynek maximális jellemzői egy PC. Lehetővé teszi, hogy egy könyvet olvassunk, és ezen kívül nézhetünk filmeket, zenét hallgathatunk, játszhatunk, böngészhetünk az interneten, vagy letölthetjük az e-maileket. A Kindle egy e-book olvasó. Ez az e
  • népszerű összehasonlítások: A napraforgóolaj és a sáfrányolaj közötti különbség

    A napraforgóolaj és a sáfrányolaj közötti különbség

    Főbb különbség: A napraforgó és a sáfrányos növények ugyanabba a botanikus családba tartoznak. Bár mindkét olajnak saját gyógyászati ​​előnyei vannak; a megfelelő növényi magvakból nyerik őket. A napraforgó és a pórsáfrány olajok fontos gyógyászati ​​felhasználásuk miatt ismertek. Ezek az olajok a megfelelő magokból s
  • népszerű összehasonlítások: Az önéletrajz és a fedőlap közötti különbség

    Az önéletrajz és a fedőlap közötti különbség

    Főbb különbség: A önéletrajz (CV) olyan dokumentum, amely összefoglalja a pályázó tudományos és foglalkoztatási adatait. A fedő levél egy bevezető levél, amely általában az önéletrajzhoz vagy a közleményhez kapcsolódik. A munkakörnyezetre gyakran alkalmaznak önéletrajzot (CV) és egy fedőlapot. Ezeket mindkettőt gyakran s
  • népszerű összehasonlítások: A dióda és a Zener dióda közötti különbség

    A dióda és a Zener dióda közötti különbség

    Kulcs különbség: A dióda olyan elektromos eszköz, amely lehetővé teszi, hogy az áram csak egy irányban mozogjon rajta. Egy N-típusú félvezetőből és egy P-típusú félvezetőből áll, amelyek együtt vannak elhelyezve. A zener dióda erősen adalékolt dióda, nagyon keskeny kimerülési régióval. Ez lehetővé teszi az áram ár

Szerkesztő Választása

Különbség az LG Optimus L5 II, L5 II Dual és a Karbonn titán S5 között

Főbb különbség: Az LG Optimus L5 II és az LG Optimus L5 II Dual számlálója a vállalat két belépő szintű okostelefonja. Az LG Optimus L5 II és L5 II Dual meglehetősen hasonlít egymásra, de bizonyos helyeken, beleértve a kinézetet is, eltérőek. A készülék 4 hüvelykes True IPS LCD kapacitív érintőképernyővel rendelkezik, amely körülbelül 233 ppi pixeles sűrűséget kínál. A Karbonn Titanium S5 egy 5 hüvelyke