Erinevus C ja C ++ vahel näidetega | Programmeerimiskeeled

Peamine erinevus: C ja C ++ on kaks erinevat programmeerimiskeelt. C ++ töötati välja C programmeerimiskeelest; kuid need on oma olemuselt üsna erinevad. Kõige ilmsem erinevus on see, et C on protseduurile orienteeritud keel, samas kui C ++ toetab nii protseduurilist kui ka objektorienteeritud programmeerimist, seetõttu nimetatakse seda sageli hübriidkeeleks.

C ja C ++ on kaks erinevat programmeerimiskeelt. C algselt välja töötanud Dennis Ritchie AT & T Bell Labs vahel 1969 ja 1973. C ++ on teine ​​üldotstarbeline programmeerimiskeelt. See töötati välja algsest C programmeerimiskeelest. Selle arendas Bjarne Stroustrup Bell Labs'is alates 1979. aastast. C ++ nimetati algselt C klassideks, kuna see oli C-põhine. 1983. aastal nimetati see ümber C ++-ks.

C on üks vanimaid praegu kasutatavaid programmeerimiskeeli ja on üks enimkasutatavaid programmeerimiskeeli. Seda on pidevalt kasutatud rakendustes, mis olid eelnevalt kodeeritud keeltes. See hõlmab ka UNIX-i operatsioonisüsteemi. C mõjutas ka otseselt või kaudselt paljusid hilisemaid programmeerimiskeeli, nagu C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python ja Unixi C-kesta. Hoolimata kõigist nendest uutest keeltest on C endiselt populaarne programmeerimiskeel.

Algselt alustas C ++ C-i täiustamist. See oli mõeldud C- allika ja lingiga ühilduvaks. Kuid see lisas klassid, virtuaalsed funktsioonid, operaatori ülekoormuse, mitme pärandi, mallid, erandite käitlemise jne. piisavalt programmeerimiskeeleks. Algselt ratifitseeriti see 1998. aastal ISO / IEC 14882: 1998 sertifitseeritud programmeerimiskeelena. Tänapäeval kasutatakse C ++-d tavaliselt riistvarakujunduses.

C on üldotstarbeline programmeerimiskeel, mis kasutab semikoolonit (;) avalduse terminaatorina, samuti kõverate traksidega ({}) avalduste plokkide rühmitamiseks. Sellel on vahendid struktureeritud programmeerimiseks ja selle konstruktsioon pakub konstruktsioone, mis suudavad efektiivselt kaardistada tüüpilisi masinajuhiseid. Samuti võimaldab see leksikaalset muutuvust ja rekursiooni ning sellel on staatiline süsteem, mis takistab mitut tahtmatut tegevust.

Kuid võrreldes C ++ -ga on C-l palju piiranguid. Kuna C ei ole objektorienteeritud, ei toeta see OOPSi kontseptsioone. C ei toeta funktsiooni ega operaatori ülekoormust. See ei saa kasutada funktsioone struktuuride sees. See ei toeta virtuaalseid funktsioone ja viitemuutujaid ega erandite käitlemist. Samuti ei toeta see viitemuutujaid. Lisaks sellele ei ka C ka kapseldamist ega andmete kindlustamist. Võrdluseks toetab C ++ kõiki neid funktsioone.

Lisaks ei toeta C NAMESPACE funktsiooni, samas kui C ++ teeb seda. Nimeruumi on lõplik piirkond, mis võimaldab identifitseerijate grupeerimist (tüüpide, funktsioonide, muutujate jne nimed). Seejärel saab nimeruume kasutada koodide loogilisteks rühmadeks korraldamiseks ja nimede kokkupõrgete vältimiseks. See on eriti kasulik juhul, kui koodibaas sisaldab mitut teeki, mis ideaalis muudab koodid kokkupõrgeteks.

Need kaks keelt erinevad ka aadressimälu funktsioonide, sisend-väljundi ja GUI programmeerimise viisi poolest. Näiteks kasutab C mälu eraldamiseks ja eraldamiseks funktsioone calloc (), malloc () ja vaba (), samas kui C ++ kasutab uusi ja kustutab. C kasutab sisendiks ja väljundiks scanf () ja printf (), samas kui C ++ kasutab operaatorit cin >> ja cout <<. C toetab GTK tööriista GUI programmeerimiseks, samas kui C ++ toetab Qt tööriistu GUI programmeerimiseks. Teine erinevus on see, et C nõuab, et deklareeritaks kõik muutujad programmi ülaosas, samas kui C ++-s võib muutujad deklareerida kõikjal programmis.

Lisaks peetakse C + + tavaliselt lihtsamaks õppida, kuna see on kasutajasõbralikum kui C. C ++ -l on ka mitmeid täiendavaid funktsioone, mis lihtsustavad kodeerimist, eriti keegi, kes on C-raamistikus uus. Paljud väidavad siiski, et see on tegelikult oluline. Need kaks keelt erinevad nii palju, et nad võivad tegelikult olla teineteisest sõltumatud kaks erinevat keelt. Üks asi, mida meeles pidada, on see, et C on palju struktureeritum kui C + +, samas kui C ++ oli mõeldud väljendusvõimelisemaks ja abstraktsemaks kui C.

C ja C ++ võrdlus:

C

C ++

Asutatud

Töötanud Dennis Ritchie AT&T Bell Labsis aastatel 1969–1973.

Töötanud Bjarne Stroustrup Bell Labs'is alates 1979. aastast.

Lähtekood

Vaba formaadis programmi lähtekood

Algselt välja töötatud C programmeerimiskeelest

Keel

Menetlusele orienteeritud keel

Toetab nii protseduurilisi kui ka objektorienteeritud programmeerimise paradigme; seetõttu nimetatakse seda sageli hübriidkeeleks.

Lähenemisviis

Järgneb ülalt-alla lähenemine.

Järgneb alt üles lähenemine.

Suhe

C on C ++ alamhulk. See ei saa käivitada C ++ koodi.

C ++ on C. C ++ -i ülemine osa.

Sõida

Funktsioonipõhine keel

Objektipõhine keel

Fookus

Keskendub pigem meetodile või protsessile kui andmetele.

Keskendub pigem andmetele kui meetodile või protseduurile.

Ehituskivid

Funktsioonid

Objektid

Märksõnad

Sisaldab 32 märksõna

Sisaldab 52 märksõna

OOPSi mõisted

Kuna C-keel on protseduurile orienteeritud keel, ei toeta see OOPS-i mõisteid nagu klass, objekt, pärand, polümorfism, andmete peitmine jne.

Objektile orienteeritud keelena toetab C ++ klassi, objekti, andmete peitmist, polümorfismi, pärandit, abstraktsiooni jne.

Funktsioonid

  • Ei toeta funktsiooni ega operaatori ülekoormust.
  • Struktuuride sisemisi funktsioone ei saa kasutada
  • Ei toeta virtuaalseid funktsioone ja võrdlusmuutujaid
  • Ei toeta erandite käsitlemist
  • ei toeta võrdlusmuutujaid
  • ei ole nimeruumi
  • võib helistada põhifunktsioonile teiste funktsioonide kaudu
  • Toetab funktsiooni ja operaatori ülekoormust.
  • Võib kasutada funktsioone konstruktsioonide sees
  • Toetab virtuaalseid funktsioone ja viitemuutujaid.
  • Toetab erandite käitlemist, kasutades proovimise ja püügi plokki. Erandeid kasutatakse "kõvade" vigade puhul, mis muudavad koodi vale.
  • toetab viitemuutujaid
  • kasutab NAMESPACE funktsiooni, mis väldib nime kokkupõrkeid.
  • ei saa põhifunktsiooni () funktsiooni teiste funktsioonide kaudu helistada.

Mälu funktsioonid

Kasutab mälu eraldamiseks ja eraldamiseks funktsioone calloc (), malloc () ja tasuta ().

Kasutab ettevõtjaid uutena ja kustutatakse samal eesmärgil.

Kapseldamine

Ei toeta. Andmed ja funktsioonid on eraldi ja vabad üksused.

Toetab kapseldamist. Andmed ja funktsioonid on kapseldatud objekti kujul. Objektide klass pakub objekti struktuuri.

Teabe peitmine

C ei toeta teabe peitmist. Siin on andmed vabad üksused ja neid saab manipuleerida välise koodiga.

Kapseldamine peidab andmed tagamaks, et andmestruktuure ja kasutajaid kasutatakse ettenähtud viisil.

Andmed

Toetab sisseehitatud ja primitiivseid andmetüüpe.

Andmeid ei tagata mitteobjektide orienteerituse tõttu

Toetab nii sisseehitatud kui ka kasutaja defineeritavaid andmetüüpe.

Andmed on kaitstud (peidetud) C + + -is

Tase

Madala tasemega keel

Kesktaseme keel

Sisend väljund

'C' keel kasutab scanf () ja printf () sisendit ja väljundit.

„C + +” keel kasutab sisendi ja väljundi jaoks operaatorit cin >> ja cout <<.

Muutujate deklaratsioon

C nõuab, et deklareeritaks kõik muutujad programmi ülaosas.

C ++-s võib muutujaid enne kasutamist kuskil programmis deklareerida.

Mitu deklaratsiooni

Lubatud on globaalsete muutujate mitu deklaratsiooni.

Mitme globaalsete muutujate deklaratsioon ei ole lubatud.

Kaardistamine

Andmete ja funktsiooni kaardistamine on keeruline ja keeruline.

Andmete ja funktsiooni vahelist kaardistamist saab kasutada "Objektide" abil

GUI programmeerimine

C toetab GTK tööriista GUI programmeerimiseks

C ++ toetab Qt tööriistu GUI programmeerimiseks

Pärand

Pärand ei ole C-s võimalik

Pärand on võimalik C ++ -is

Faili laiendamine

Kas faililaiend on .c

Kas faililaiend .cpp

Vaikimisi päisefail

C keeles kasutatav vaikimisi päisefail on stdio.h

Vaikimisi päisefail, mida kasutatakse C ++, on iosteam.h

Mõned näited erinevustest C ja C ++ vahel:

Näited

C

C ++

Muutuv deklaratsioon

Ainult ülaosas:

int i;

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

Programmis kõikjal:

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

Mälu jaotamine

Malloc:

int * x = malloc (suurus (int));

int * x_array = malloc (suurus (int) * 10);

Uus:

int * x = uus int;

int * x_array = uus int [10];

Mälu vabastamine

Tasuta:

vaba (x);

vaba (x_array);

Kustuta:

kustutada x;

kustutage [] x_array;

Soovitatav

Seotud Artiklid

  • populaarsed võrdlused: Atomi ja iooni vaheline erinevus

    Atomi ja iooni vaheline erinevus

    Peamised erinevused: aatomid on põhiosad, millest kõik on valmistatud ja mis on mistahes objekti väikseim osa. Ioon on iga aatom, mille prootonid ei võrdu oma elektronidega. Aatom ja ioon on kaks erinevat terminit, mis on keemia suur osa. Need kaks mõistet moodustavad keemia põhialuse ja inimene, kes soovib aru saada, kuidas asjad on koostatud, leiavad, et nad peavad neid termineid täielikult mõistma. Aatom
  • populaarsed võrdlused: Erinevus atraktsiooni ja soovi vahel

    Erinevus atraktsiooni ja soovi vahel

    Peamised erinevused: atraktsioon on midagi, mis teeb kellegi teise vastu huvi tundma. Soov on positiivne jõud, mis ühendab asja, mida üks tõesti tahab. Atraktsioonil on kaks olulist etappi: ootus ja soov. Ootus on midagi, mis on negatiivne jõud. See on viis, kuidas saab soovi. Teisest küljest on soov väga positiivne tunne, mis aitab ühendada ja alustada suhet, mida üks tõesti tahab olla. Atraktsi
  • populaarsed võrdlused: Erinevus kuberneri ja senaatori vahel

    Erinevus kuberneri ja senaatori vahel

    Peamine erinevus: kuberner on sisuliselt riigi juht. Tal on väiksemad volitused nagu president või peaministri pähkel. Senat on senati liige. Senaatori ülesanne on esindada oma riigi kodanikke ja nende vajadusi ja soove riiklikul tasandil. Mõlemad on tavaliselt Ameerika Ühendriikides. Iga maakond on tavaliselt jaotatud riikidesse. Kuig
  • populaarsed võrdlused: Vaktsineerimise ja immuniseerimise erinevus

    Vaktsineerimise ja immuniseerimise erinevus

    Peamised erinevused: Vaktsineerimine on viiruse nõrgestatud manustamine, et organism saaks haiguse suhtes immuunsuse. Immuniseerimine on organismi protsess, mis loob teatud haiguse suhtes immuunsuse. Termineid "vaktsineerimine ja immuniseerimine" kuuletakse sageli meditsiinivaldkonnas või kui te lähete arstidele. N
  • populaarsed võrdlused: Hangi ja Umu vahe

    Hangi ja Umu vahe

    Peamised erinevused: Hangi on traditsiooniline toiduvalmistamise vorm Uus-Meremaa (Maoris) jaoks. Umu on teine ​​Hangi nimi, kuid viitab konkreetselt kapsapuude valmistamise protsessile. Seda kasutatakse kõige sagedamini Lõuna-saarel. Hangi tuntakse ka Maa ahjus. See on maori jaoks parim traditsiooniline toiduvalmistamise vorm. Toit
  • populaarsed võrdlused: Raske ja kroonilise vahe

    Raske ja kroonilise vahe

    Oluline erinevus: meditsiinis on rasked ja kroonilised haigused, mis on üksteisest täiesti erinevad. Rasked haigused osutavad üldiselt indiviidi haiguse intensiivsusele; arvestades, et krooniline haigus näitab haiguse kestust. Tõsised haigused on intensiivsed tavalised haigused, nagu valu, köha, peavalu, tugev kõhuvalu jne. Need
  • populaarsed võrdlused: Hurricane'i ja Blizzardi vaheline erinevus

    Hurricane'i ja Blizzardi vaheline erinevus

    Põhiline erinevus: orkaan on troopiline tsüklon, mida iseloomustavad äikesetormid, tugevad tuuled ja tugevad vihmasajud. Kuigi lumetorm on talvine torm, mis on peamiselt põhjustatud tugevatest jätkuvatest tuuledest. Orkaan võib tuua tuule kiirust 74 mph üle 155 km / h, võrreldes lumetormiga, mille tuulekiirus on vahemikus 35 mph kuni 45 mph. Orkaan
  • populaarsed võrdlused: Erinevus dieedi ja toitumisspetsialisti vahel

    Erinevus dieedi ja toitumisspetsialisti vahel

    Peamine erinevus: toitumisspetsialistid ja toitumisspetsialistid nõustavad inimesi toidu ja toitumise küsimustes. Dietoloog on koolitatud ja litsentseeritud praktik, kelle suhtes kohaldatakse professionaalset reguleerimist, samal ajal kui toitumisspetsialist ei ole. Paljud inimesed eeldavad, et „toitumisspetsialisti” ja „toitumisspetsialisti” vahel ei ole vahet. Kuigi na
  • populaarsed võrdlused: Häälduse ja rõhu erinevus

    Häälduse ja rõhu erinevus

    Oluline erinevus: hääldus on sõna või teo sõna. Accent on märk, mida kasutatakse silbi rõhu näitamiseks või rõhutamiseks. Hääldus ja aktsent on kaks erinevat sõna, mis on seotud kõnes või kõnes. Mõiste „hääldus” tähendab, et iga sõnastab iga sõna, mis hõlmab seda, kuidas su suu kujundate, kus paned oma keele või kuidas te sõna eri osi väljendate. See on viis, kuidas üks sõna

Toimetaja Valik

Passion ja Lust vaheline erinevus

Oluline erinevus: kirg on tundlike emotsioonide tunne. Need tugevad tunded võivad olla seotud inimese või asjaga, samas kui himu võib defineerida kui kirglikku soovi või iha, mis keskendub peamiselt meeldivale iseärasusele. Nii kirg kui ka himu tegelevad tugevate emotsioonidega. Kirg on tuletatud ladina verbist „pati”, mis tähendab „kannatada”. Kirg on tuge