c vs c 39 main differences between c
Ta vadnica razlaga ključne razlike med jeziki C Vs C ++ glede različnih funkcij:
kaj je ukaz grep v unixu
Jezik C ++ je podmnožica jezika C.
C ++ je bil prvič zasnovan kot razširitev jezika C. C ++ poleg funkcij postopkovnega jezika, ki izhajajo iz C, podpira tudi objektno usmerjene programske funkcije, kot so dedovanje, polimorfizem, abstrakcija, enkapsulacija itd.
V tej vadnici bomo obravnavali nekatere glavne razlike med jezikoma C in C ++.
Predlagano branje => Popoln vodnik za C ++ za začetnike
Kaj se boste naučili:
- Ključne značilnosti C in C ++
- Ključne razlike med C Vs C ++
- Tabelarična oblika: C Vs C ++
- Pogosta vprašanja o C in C ++
- Zaključek
- Priporočeno branje
Ključne značilnosti C in C ++
Preden nadaljujemo z razlikami, naštejmo nekatere značilnosti jezika C in C ++.
Značilnosti in lastnosti C
- Postopkovno
- Pristop od spodaj navzgor.
- Sistemski programski jezik.
- Ne podpira razredov in predmetov.
- Podpira kazalce
Značilnosti in lastnosti C ++
- Objektno usmerjen
- Pristop od spodaj navzgor
- Hitrost je hitrejša.
- Bogata podpora knjižnici v obliki standardne knjižnice predlog.
- Podpira kazalce in reference.
- Sestavljeno
Ključne razlike med C Vs C ++
Spodaj so navedene glavne razlike med C Vs C ++.
# 1) Vrsta programiranja:
C je proceduralni jezik, v katerem se program vrti okoli funkcij. Celotna težava je razdeljena na številne funkcije. Glavni poudarek programa je na funkcijah ali postopkih za dosego stvari.
C ++ je nasprotno objektno usmerjen programski jezik. Tu so glavni poudarek podatki problema in razredi so zgrajeni okoli teh podatkov. Funkcije delujejo na podatke in so tesno povezane s podatki.
# 2) Pristop k programiranju:
Ker je C postopkovni jezik, sledi programiranju od zgoraj navzdol. Tu vzamemo težavo in jo nato razdelimo na podprobleme, dokler ne najdemo posameznih podproblemov, ki jih je mogoče rešiti neposredno. Nato rešitve združimo, da dobimo glavno rešitev.
C ++ sledi pristopu programiranja od spodaj navzgor. Pri tem začnemo z nizko stopnjo načrtovanja ali kodiranjem, nato pa nadgrajujemo to zasnovo na nizki ravni, da dobimo rešitev na visoki ravni.
# 3) Razvoj aplikacij:
Jezik C je koristen pri programiranju vdelanih sistemov ali implementacij na nizki ravni.
C ++ pa je bolj primeren za strežniške aplikacije, omrežne aplikacije ali za igre, kot so igre na srečo itd.
# 4) Razširitev datoteke:
Programi, napisani v jeziku C, se običajno shranijo s pripono .c, programi C ++ pa s pripono .cpp.
# 5) Združljivost med seboj:
C ++ je podmnožica jezika C, saj je razvit in večino svojih procesnih struktur prevzema iz jezika C. Tako se bo kateri koli program C prevedel in dobro deloval s prevajalnikom C ++.
Vendar jezik C ne podpira objektno usmerjenih funkcij C ++ in zato ni združljiv s programi C ++. Zato se programi, napisani v jeziku C ++, ne bodo izvajali na prevajalnikih C.
# 6) Združljivost z drugimi jeziki:
Jezik C ++ je na splošno združljiv z drugimi generičnimi programskimi jeziki, jezik C pa ni.
# 7) Enostavnost kodiranja:
Lahko rečemo, da je C praktični jezik in ga lahko programiramo na kakršen koli način. C ++ je sestavljen iz nekaterih objektno usmerjenih konstrukcij na visoki ravni, ki nam pomagajo kodirati programe na visoki ravni.
Če torej rečemo, da je C enostaven, je tudi C ++ lažje kodirati.
# 8) Varnost podatkov:
V C je glavni poudarek bolj na funkcijah ali postopkih kot na podatkih. Kar zadeva varnost podatkov, je v C. zanemarljiva
V C ++, ko imamo opravka z razredi in predmeti, je glavni gradnik programa Data. Tako so podatki tesno zavarovani z uporabo razredov, specifikatorjev dostopa, enkapsulacije itd.
# 9) Oddelek za programe:
Program v jeziku C je razdeljen na funkcije in module. Te funkcije in module nato glavna funkcija ali druge funkcije pokličejo za izvedbo.
Program C ++ je razdeljen na razrede in predmete. Problem je zasnovan v razredih, objekti teh razredov pa so izvršilne enote, ki jih ustvarijo glavne funkcije in se izvajajo.
# 10) Standardne V / I operacije:
Standardni vhodno-izhodni operaciji v C za branje / pisanje podatkov iz / v standardno napravo sta „scanf“ oziroma „printf“.
V C ++ se podatki berejo s standardne vhodne naprave s pomočjo 'cin', medtem ko se na izhodno napravo natisnejo s pomočjo 'cout'.
# 11) Fokus / poudarek:
Ker je C postopkovni jezik, bolj poudarja zaporedje korakov ali postopkov za reševanje problema.
Po drugi strani pa je C ++ objektno usmerjen in s tem bolj osredotočen na predmete in razrede, okoli katerih naj bi bila zgrajena rešitev.
# 12) Glavna () funkcija:
V C ++ funkcije main () ne moremo poklicati z nobene druge točke. Glavna () funkcija je posamezna izvedbena točka.
V jeziku C pa imamo lahko funkcijo main (), ki jo pokličejo druge funkcije v kodi.
# 13) Spremenljivka:
Spremenljivke je treba prijaviti na začetku funkcijskega bloka v jeziku C, nasprotno, spremenljivke lahko prijavimo kjer koli v programu C ++, pod pogojem, da so deklarirane pred uporabo v kodi.
# 14) Globalne spremenljivke:
Jezik C omogoča večkratno deklariranje globalnih spremenljivk. C ++ pa ne dovoljuje več deklaracij globalnih spremenljivk.
# 15) Kazalci in referenčne spremenljivke:
Kazalci so spremenljivke, ki kažejo na pomnilniške naslove. Tako C kot C ++ podpirata kazalce in različne operacije, ki se izvajajo na kazalcih.
Sklici delujejo kot vzdevki za spremenljivke in kažejo na isto mesto pomnilnika kot spremenljivka.
Jezik C podpira samo kazalce in ne reference. C ++ podpira kazalce in reference.
# 16) Naštevanja:
Naštevanja lahko prijavimo v jeziku C in C ++. Toda v C so konstante naštevanja tipa Integer. To je enako kot razglasitev celoštevilčne konstante brez kakršne koli vrste varnosti.
V jeziku C ++ so oštevilčenja različna. So različnih vrst. Če želimo spremenljivki oštevilčenega tipa dodeliti celoštevilski tip, potrebujemo eksplicitno pretvorbo tipa.
Vendar lahko spremenljivki celoštevilskega tipa dodelimo oštevilčeno vrednost, saj oštevilčeni tip omogoča celostno promocijo ali implicitno pretvorbo.
# 17) Strune:
Kar zadeva nize, izjava 'char ()' razglasi niz nizov. Toda ko se niz, razglašen kot zgoraj, prenese med funkcije, ni nobenega zagotovila, da ga druge zunanje funkcije ne bodo spremenile, saj so ti nizi spremenljivi.
Te pomanjkljivosti ni v C ++, saj C ++ podpira vrsto podatkovnih nizov, ki definirajo nespremenljive nize.
# 18) Vgrajena funkcija:
Vdelane funkcije v C. niso podprte. C običajno deluje z makri, da pospeši izvajanje. V C ++ pa se uporabljajo vrstne funkcije in makri.
# 19) Privzeti argumenti:
Privzeti argumenti / parametri se uporabljajo, kadar parametri niso določeni v času klica funkcije. V definiciji funkcije določimo privzete vrednosti za parametre.
Jezik C ne podpira privzetih parametrov. Medtem ko C ++ podpira uporabo privzetih argumentov.
# 20) Strukture:
Strukture v C in C ++ uporabljajo isti koncept. Toda razlika je v C, saj funkcij ne moremo vključiti kot člane.
C ++ omogoča, da imajo strukture funkcije kot njegovi člani.
# 21) Razredi in predmeti:
C je proceduralni jezik in zato ne podpira koncepta razredov in predmetov.
Po drugi strani C ++ podpira koncept razredov in predmetov in skoraj vse aplikacije v jeziku C ++ so zgrajene okoli razredov in predmetov.
# 22) Vrste podatkov:
C podpira vgrajene in primitivne vrste podatkov. V nasprotju s tem C ++ poleg vgrajenih in primitivnih podatkovnih vrst podpira tudi uporabniško določene podatkovne tipe.
Poleg tega C ++ podpira tudi logične in nizovne tipe podatkov, ki jih C. ne podpira.
# 23) Preobremenitev funkcije:
Preobremenitev funkcije je zmožnost imeti več funkcij z istim imenom, vendar različnimi parametri ali seznamom parametrov ali vrstnim redom parametrov.
To je pomembna značilnost objektno usmerjenega programiranja in je prisotna v jeziku C ++. Vendar C ne podpira te funkcije.
# 24) Dedovanje:
Dedovanje je tudi pomembna značilnost objektno usmerjenega programiranja, ki ga podpira C ++ in ne C.
# 25) Funkcije:
C ne podpira funkcij s privzetimi ureditvami, kot so privzeti parametri itd. C ++ podpira funkcije s privzetimi ureditvami.
# 26) Imenski prostor:
Imenski prostori niso podprti v jeziku C, podpira pa jih C ++ .
# 27) Izvorna koda:
C je jezik v prosti obliki, ki nam omogoča programiranje česar koli. C ++ je izpeljan iz C in ima tudi objektno usmerjene programske funkcije, zaradi katerih je učinkovitejša, kar zadeva izvorno kodo.
# 28) Abstrakcija:
Abstrakcija je način, kako skriti podrobnosti izvedbe in uporabniku izpostaviti samo zahtevani vmesnik. To je ena od značilnosti objektno usmerjenega programiranja.
C ++ podpira to funkcijo, C pa ne.
# 29) Kapsulacija:
Kapsulacija je tehnika, s katero zapišemo podatke iz zunanjega sveta. To pomaga pri skrivanju informacij.
razlika med preizkušanjem whitebox in blackbox
C ++ uporablja razrede, ki združujejo podatke in funkcije, ki delujejo na te podatke, v eno enoto. To je kapsulacija. C nima te funkcije.
# 30) Skrivanje informacij:
Funkcije abstrakcije in inkapsulacije lahko pomagajo pri skrivanju informacij tako, da uporabniku izpostavijo le zahtevane podrobnosti in skrijejo podrobnosti, kot je izvedba itd. Na ta način lahko izboljšamo varnost podatkov v naših programih.
C ++ daje velik poudarek podatkom in za skrivanje informacij uporablja abstrakcijo in enkapsulacijo.
C ne poudarja podatkov in se ne ukvarja s skrivanjem informacij.
# 31) Polimorfizem:
Polimorfizem preprosto pomeni, da ima en objekt več oblik in je bistvena značilnost objektno usmerjenega programiranja. Ker je objektno usmerjen jezik, C ++ podpira polimorfizem.
C ne podpira objektno usmerjenega programiranja in ne podpira polimorfizma. Lahko pa simuliramo dinamično pošiljanje funkcij v jeziku C s kazalci funkcij.
# 32) Navidezna funkcija:
Navidezne funkcije, ki jih imenujemo tudi polimorfizem med izvajanjem, je tehnika, ki se uporablja za razreševanje klicev funkcij med izvajanjem. To je še ena značilnost objektno usmerjenega programiranja, ki jo podpira C ++ in ne C.
# 33) Programiranje GUI:
Za programiranje, povezano z GUI (grafični uporabniški vmesnik), C uporablja orodja Gtk, medtem ko C ++ uporablja orodja Qt.
# 34) Kartiranje:
Kar zadeva preslikavo podatkov s funkcijami, je jezik C zelo zapleten, saj se ne osredotoča na podatke.
Medtem ko ima C ++ dobro preslikavo podatkov in funkcij, saj podpira razrede in predmete, ki povezujejo podatke in funkcije.
# 35) Upravljanje pomnilnika:
Tako C kot C ++ imata ročno upravljanje pomnilnika, vendar je način upravljanja pomnilnika v obeh jezikih drugačen.
V C uporabljamo funkcije, kot so malloc (), calloc (), realloc () itd., Da dodelimo pomnilnik in funkcijo free () za sprostitev pomnilnika. Toda v C ++ uporabljamo operaterja new () in delete () za dodelitev in sprostitev pomnilnika.
# 36) Privzete glave:
Privzete glave vsebujejo pogoste klice funkcij, ki se v programskih jezikih uporabljajo predvsem za vnos-izhod itd.
V jeziku C je 'stdio.h' privzeta glava, medtem ko C ++ uporablja kot privzeto glavo .
# 37) Obravnava izjem in napak:
C ++ podpira obdelavo izjem in napak z uporabo blokov try-catch. C ne podpira neposrednega ravnanja z izjemami, napake pa lahko odpravimo z nekaj rešitvami.
# 38) Ključne besede:
C ++ podpira veliko več ključnih besed kot C. Dejansko ima C le 32 ključnih besed, medtem ko ima C ++ 52 ključnih besed.
# 39) Predloge:
Predloge nam omogočajo, da določimo razrede in predmete neodvisno od podatkovnega tipa. Z uporabo predlog lahko napišemo generično kodo in jo pokličemo za kateri koli podatkovni tip.
Objektno usmerjen C ++ uporablja razrede in predmete in tako podpira predloge. C na drugi strani ne podpira koncepta predlog.
Tabelarična oblika: C Vs C ++
Ne | Značilnosti | C | C ++ |
---|---|---|---|
7. | Enostavnost kodiranja | Omogoča, da vse kodiramo. | Prihaja z zelo naprednimi objektno usmerjenimi koncepti. |
eno | Vrsta programiranja | Procesni jezik | Objektno usmerjen programski jezik. |
dva | Programski pristop | Pristop od zgoraj navzdol | Pristop od spodaj navzgor |
3. | Razvoj aplikacij | Dobro za vdelane naprave, sistemsko kodiranje itd. | Dobro za mreženje, aplikacije na strežniški strani, igre na srečo itd. |
4. | Razširitev datoteke | .c | .cpp |
5. | Združljivost med seboj | Ni združljivo s C ++. | Združljiv s C, saj je C ++ podmnožica C. |
6. | Združljivost z drugimi jeziki | Ni združljivo | Združljiv |
8. | Varnost podatkov | Zanemarljivo | Visoko |
9. | Delitev programa | Program razdeljen na funkcije. | Program razdeljen na razrede in predmete. |
10. | Standardne V / I operacije | scanf / printf | cin / strošek |
enajst | Fokus / poudarek | Poudarja funkcije in / ali procese. | Poudarek je na podatkih in ne na funkcijah. |
12. | Glavna () funkcija | Lahko pokliče main prek drugih funkcij. | S katere koli točke ni mogoče poklicati glavnega. |
13. | Spremenljivke | Navesti na začetku funkcije. | Lahko se prijavi kjer koli v programu. |
14. | Globalne spremenljivke | Več deklaracij | Ni več izjav. |
petnajst | Referenčne spremenljivke in kazalci | Samo kazalci | Oboje |
16. | Naštevanja | Samo celoštevilske vrste. | Razločen tip |
17. | Strune | Podpira samo char () | Podpira niz nizov, ki je nespremenljiv. |
18. | Vgrajena funkcija | Ne podpira | Podprto |
19. | Privzeti argumenti | Ne podpira | Podprto |
dvajset | Strukture | Ne morejo imeti funkcij kot člani strukture. | Lahko imajo funkcije kot člani strukture. |
enaindvajset | Razredi in predmeti | Ne podpira | Podprto |
22. | Vrste podatkov | Podprti so samo vgrajeni in primitivni podatkovni tipi. Ni logičnih in nizovnih vrst. | Poleg vgrajenih podatkovnih tipov so podprti tudi logični in nizovni tipi. |
2. 3 | Preobremenitev funkcije | Ne podpira | Podprto |
24. | Dedovanje | Ne podpira | Podprto |
25. | Funkcije | Ne podpira funkcij s privzetimi ureditvami. | Podpira funkcije s privzetimi ureditvami. |
26. | Imenski prostor | Ne podpira | Podprto |
27. | Izvorna koda | Prosti format | Prvotno vzeto iz C plus objektno usmerjeno. |
28. | Abstrakcija | Ni prisoten | Prisoten |
29. | Skrivanje informacij | Ne podpira | Podprto |
30. | Kapsulacija | Ne podpira | Podprto |
31. | Polimorfizem | Ne podpira | Podprto |
32 | Navidezna funkcija | Ne podpira | Podprto |
33 | GUI programiranje | Uporaba orodja Gtk. | Uporaba orodij Qt. |
3. 4 | Kartiranje | Podatkov in funkcij ni mogoče enostavno preslikati. | Podatke in funkcije lahko enostavno preslikate. |
35 | Upravljanje pomnilnika | Funkcije malloc (), calloc (), free (). | Nova operaterja () in delete (). |
36 | Privzete glave | Stdio.h | iostream glava |
37 | Obravnava izjem in napak | Brez neposredne podpore. | Podprto |
38 | Ključne besede | Podpira 32 ključnih besed. | Podpira 52 ključnih besed. |
39 | Predloge | Ne podpira | Podprto |
Pogosta vprašanja o C in C ++
Do zdaj smo videli ključne razlike med C Vs C ++. Zdaj bomo odgovorili na nekatera pogosta vprašanja v zvezi s C, C ++ in njihovo primerjavo.
V # 1) Zakaj se še vedno uporabljata C in C ++?
Odgovori: C in C ++ sta še vedno priljubljena kljub preveč programskim jezikom na trgu. Glavni razlog je v tem, da sta C in C ++ blizu strojne opreme. Drugič, s temi jeziki lahko naredimo skoraj vse.
c # vprašanja za razgovor za izkušene
Zmogljivost C ++ je visoka v primerjavi z drugimi jeziki. Ko gre za razvoj vgrajenega sistema, se zdi C očitna izbira. Čeprav ena velikost ne ustreza vsem, obstaja nekaj aplikacij in projektov, ki jih je mogoče razviti samo s pomočjo C in C ++.
V # 2) Kaj je težje C ali C ++? Ali Kateri je boljši C ali C ++?
Odgovori: Pravzaprav sta oba težka in oboje lahko. C ++ temelji na C in tako podpira vse funkcije C in ima tudi objektno usmerjene programske funkcije. Kar zadeva učenje, je velikost C manjši, z nekaj koncepti za učenje, medtem ko je C ++ ogromen. Zato lahko rečemo, da je C lažji od C ++.
Ko gre za programiranje, morate razmišljati v smislu aplikacije, ki jo razvijate. Glede na to, da bo aplikacija programirana, moramo pretehtati prednosti in slabosti obeh jezikov in se odločiti, katero aplikacijo je lažje razviti.
Za konec lahko rečemo, da ni natančnega odgovora, kaj je težje ali kaj boljše.
V # 3) Se lahko C ++ naučimo brez C? Se je C ++ težko naučiti?
Odgovori: Da, C ++ se lahko naučimo enostavno, ne da bi vedeli C.
Tako lahko s pravilno miselnostjo in dobrim programskim znanjem skočite na C ++, ne da bi se dotaknili C. Ker je C podmnožica C ++, boste med učenjem C ++ vedno dobili jezik C.
V # 4) Kateri je hitrejši C ali C ++?
Odgovori: Pravzaprav je to odvisno od funkcije, ki jo uporabljamo. Na primer, če smo v našem programu C ++ uporabljali objektno usmerjene programske funkcije, kot je navidezna funkcija, potem bo ta program počasnejši, saj je za vzdrževanje navideznih tabel in drugih podrobnosti o navideznih funkcijah vedno treba dodatno prizadevati.
Če pa uporabljamo običajne funkcije v C ++, bo ta program C ++ in kateri koli drug program C imel enako hitrost. Tako je odvisno od dejavnikov, kot je aplikacija, ki jo razvijamo, lastnosti, ki jih uporabljamo itd.
V # 5) Ali je C ++ dober začetni jezik?
Odgovori: Odgovor je Da in Ne.
Da, ker se lahko naučimo katerega koli programskega jezika, če imamo pravo motivacijo, čas za vlaganje in voljo do učenja. Edini predpogoj je, da morate imeti osnovno računalniško znanje in osnovno programsko terminologijo.
Tako, ko začnemo s C ++, če se učimo osnov jezika in drugih konstruktov, kot so zanke, odločanje itd., Je tako enostavno kot kateri koli drug jezik.
Zdaj bomo prišli do Nobenega dela.
Vemo, da je C ++ zelo širok in ima veliko funkcij. Tako se bomo pri napredovanju učenja soočali z veliko izzivi pri programiranju na C ++, zato jih kot začetnik morda ne bomo mogli obvladati.
Samo predstavljajte si situacijo, ko začnem s C ++ kot prvim jezikom in naletim na uhajanje spomina !! Zato je za začetek dobro, če gre za preproste jezike, kot sta Python ali Ruby. Privoščite si programiranje in nato pojdite na C ++.
Zaključek
V tej vadnici smo raziskali glavne razlike med jeziki C Vs C ++ glede različnih funkcij.
Medtem ko je C proceduralni jezik, C ++ pa objektno usmerjen programski jezik, smo ugotovili, da so številne funkcije izključne za C ++. Ker C ++ izhaja iz C, podpira številne funkcije, ki jih podpira C.
V naslednjih vajah bomo še naprej razpravljali o razlikah med C ++ in drugimi programskimi jeziki, kot sta Java in Python.
=> Tu si oglejte celotno serijo usposabljanj za C ++
Priporočeno branje
- Vadnica za glavne funkcije Pythona s praktičnimi primeri
- Git vs GitHub: raziščite razlike s primeri
- TDD Vs BDD - Analizirajte razlike s primeri
- 70+ NAJBOLJŠIH vaj za C ++ za BREZPLAČNO učenje C ++ programiranja
- Datum in čas v C ++ z primeri
- Kako deluje preskušanje na podlagi podatkov (primera QTP in selena)
- Razvrstitev lupine v C ++ z primeri
- Vadnica Python DateTime s primeri