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: Traditsioonide ja kultuuri erinevus

    Traditsioonide ja kultuuri erinevus

    Peamised erinevused: Traditsioon on uskumuste või käitumise edasiandmine ühelt põlvkonnalt järgmisele põlvkonnale, samas kui kultuur peegeldab ühiskonnas teatud ajahetkel kirjeldavaid omadusi; ja kultuur on enamasti seotud kunstivormidega. Wikipedia määratleb traditsiooni kui „Traditsioon on uskumine või käitumine, mis on möödunud sümboolse tähenduse või erilise tähendusega grupist või ühiskonnast, mille päritolu on minevikus”. Sõna "traditsioon
  • populaarsed võrdlused: Erinevus poe ja poe vahel

    Erinevus poe ja poe vahel

    Peamised erinevused: Paljude inimeste sõnul viitab mõiste „kauplus” väikesele kohale, mis müüb tooteid ja kaupu. Kuigi "kauplused" salvestatakse suurtele kauplustele, näiteks kaubamajale, kus võib olla mitu kauplust. Nüüd on veel üks kasutamisel esile tõstetud erinevus, et „kauplus” viitab mis tahes kohale, mis pakub teenust või kohandatavaid tooteid. „Poe” loetakse koh
  • populaarsed võrdlused: Riikide ja riikide vaheline erinevus

    Riikide ja riikide vaheline erinevus

    Oluline erinevus : riik on määratletud kui piirkond või maa-ala, mida kontrollib oma valitsus. Mõiste „rahvas” viitab kogukonnale või inimeste rühmale, kellel on sama ajalugu, keel, päritolu ja ühine valitsus. On tavaline, et inimesed kasutavad termineid, riiki ja rahvast vaheldumisi, nagu oleks nende kahe vahel erinevusi. Valitsuse
  • populaarsed võrdlused: Teravilja ja hirsidevaheline erinevus

    Teravilja ja hirsidevaheline erinevus

    Peamised erinevused: Teravili on „Graminaceae perekonda” kuuluv rohi. Teravilja kasvatatakse peamiselt söödavate kuivade seemnete puhul. Hirss on väike teravilja- ja söödarohi, mida kasvatatakse laialdaselt kuivades piirkondades. Hirss ja muud teraviljad kasvatatakse toiduks ja söödaks. Teravili on Graminaceae perekonna taimed. Neid taim
  • populaarsed võrdlused: Linnade ja maapiirkondade vaheline erinevus

    Linnade ja maapiirkondade vaheline erinevus

    Peamised erinevused: linnapiirkonnad on määratletud kiirema elustiili, kõrgema tehnoloogia ja suure rahvastikutihedusega. Maapiirkonnad on määratletud väikese tihedusega kudumisringkondades, kus puuduvad tehnoloogiad ja ressursid. Inimeste asustuspiirkonnad liigitatakse sõltuvalt paljudest asjadest, riikidest, maapiirkondadest, linnadest jne. Tänap
  • populaarsed võrdlused: Erinevus ühenduse ja ühiskonna vahel

    Erinevus ühenduse ja ühiskonna vahel

    Oluline erinevus : nii kogukond kui ühiskond on üksteise lähedased sugulased. Kogukond tähendab inimeste gruppi, kes elavad koos, millel on mõned ühised tunnused. Ühiskond tähendab piirkonnas elavate inimeste arvu, austades selle seadusi ja tavasid. Ühendus tähendab põhiliselt inimeste gruppi, kes tulevad kokku, et jagada oma väärtusi ja huve. Kogukondade
  • populaarsed võrdlused: Erinevus Cappuccino ja Espresso vahel

    Erinevus Cappuccino ja Espresso vahel

    Peamine erinevus : Cappuccino ja espresso on kaks erinevat tüüpi kohvijooke, mida inimesed tarbivad kogu maailmas. Peamine erinevus cappuccino ja espresso vahel põhineb nende individuaalsel koostisel ja valmistamismeetodil. Espresso ja Cappuccino mõlemad on kaks erinevat tüüpi kohvi. Tavaliselt valmistatakse tassi kohvi, segades kuuma vett maandatud või röstitud kohvioadega ning piima või koort, millele on lisatud suhkrut, vastavalt maitsele. On olem
  • populaarsed võrdlused: Erinevus lõssi ja pastöriseeritud piima vahel

    Erinevus lõssi ja pastöriseeritud piima vahel

    Erinevus: lõss on toode, millest on peaaegu kõik piimarasvad eemaldatud. Pastöriseeritud piim peab piima kuumutama, et tappa baktereid. Lõssipulber ja pastöriseeritud piim on kaks erinevat terminit. Need varieeruvad sõltuvalt nende valmistamise viisist ja piima rasvasisaldus varieerub sõltuvalt tootest. Lõss
  • populaarsed võrdlused: Erinevus kooki ja pirni vahel

    Erinevus kooki ja pirni vahel

    Peamine erinevus: peamine erinevus kookide ja pirukate vahel on nende sisu. Kook koosneb frostidest ja kreemidest, samal ajal kui pirukas on küpsetatud leib, mis koosneb täidisest. Kook on leiva või leiva-tüüpi toidu vorm. Oma kaasaegses vormis on see tavaliselt magusa küpsetatud magustoit. Kaasaegsed koogid koosnevad kreemide ja jäätmete kihist. Koogid

Toimetaja Valik

Asteroidi ja Meteori vaheline erinevus

Peamine erinevus: asteroid on suur tükk kivist, mis ringleb ümber päikese. Asteroide nimetatakse ka planetoidideks või väikesteks planeetideks. Teisest küljest viitab meteoor valguse välklambile, mis järgib planeetidevahelist prahti, kui see siseneb meie atmosfääri. Meteor ei ole praht ise, vaid prügi põhjustatud valguse välk. Me nimetame