Tärkein ero: C ja C ++ ovat kaksi eri tietokoneohjelmointikieliä. C ++ kehitettiin C-ohjelmointikielestä; ne ovat kuitenkin luonteeltaan aivan erilaisia. Ilmeisin ero on se, että C on menettelyyn suuntautunut kieli, kun taas C ++ tukee sekä prosessi- että objekti-suuntautunutta ohjelmointia, joten sitä kutsutaan usein hybridikieleksi.
C on yksi vanhimmista käytössä olevista ohjelmointikielistä ja on yksi yleisimmin käytetyistä ohjelmointikielistä. Sitä on käytetty jatkuvasti sovelluksissa, jotka oli aiemmin koodattu kokoonpanokielellä. Tämä sisältää UNIX-tietokoneiden käyttöjärjestelmän. C on vaikuttanut myös suoraan tai epäsuorasti moniin myöhempiin ohjelmointikieliin, kuten C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python ja Unixin C-kuori. Kaikista näistä uusista kielistä huolimatta C on edelleen suosittu ohjelmointikieli.
C ++ aloitti alun perin lisälaitteena C. Se oli suunniteltu lähteen ja linkin yhteensopivaksi C: n kanssa. tarpeeksi, jotta sitä voidaan pitää ohjelmointikielenä. Se on alun perin ratifioitu vuonna 1998 ISO / IEC 14882: 1998 -sertifioiduksi ohjelmointikieleksi. Nykyään C ++: ta käytetään yleisesti laitteistosuunnitteluun.
C on yleiskäyttöinen ohjelmointikieli, joka käyttää puolipistettä (;) lausekkeen terminaattorina, sekä kierteiset olkaimet ({}) lausekkeiden lohkojen ryhmittelyyn. Siinä on valmiudet ohjelmoitua ohjelmointia varten, ja sen suunnittelussa on rakenteita, jotka voivat kartoittaa tehokkaasti tyypillisiä koneen ohjeita. Se sallii myös leksikaalisen vaihtelevan laajuuden ja rekur- sion ja sillä on staattinen tyyppinen järjestelmä, joka estää monta tahatonta toimintaa.
C: hen verrattuna C: llä on kuitenkin lukuisia rajoituksia. Koska C ei ole objektorientoitu, se ei tue OOPS-käsitteitä. C ei tue toiminnan ja käyttäjän ylikuormitusta. Se ei voi käyttää rakenteiden sisäisiä toimintoja. Se ei tue virtuaalisia toimintoja ja referenssimuuttujia tai poikkeuksen käsittelyä. Se ei myöskään tue viitemuuttujia. Lisäksi C ei myöskään pääse kapseloimaan tai datan varmistamiseen. C ++ tukee kaikkia näitä ominaisuuksia.
Kaksi kieltä vaihtelevat myös osoitemuistitoimintojen, tulosignaalin ja GUI-ohjelmoinnin tapaan. Esimerkiksi C käyttää calloc (), malloc () ja vapaita () funktioita muistin allokoimiseksi ja jakamiseksi, kun taas C ++ käyttää uutta ja poistaa. C käyttää scanf () ja printf () tuloa ja lähtöä varten, kun taas C ++ käyttää cin >> ja cout << operaattoreita. C tukee GTK-työkalua GUI-ohjelmointiin, kun taas C ++ tukee Qt-työkaluja GUI-ohjelmointiin. Toinen ero on se, että C vaatii yhden ilmoittamaan kaikki muuttujat ohjelman yläosassa, kun taas C ++: ssa muuttujat voidaan ilmoittaa missä tahansa ohjelmassa.
Lisäksi C ++: ta pidetään yleensä helpompana oppia, koska se on käyttäjäystävällisempi kuin C. C ++: lla on myös lukuisia muita toimintoja, jotka helpottavat koodausta erityisesti jokaiselle, joka on uusi C-kehykseen. Monet väittävät kuitenkin, että se on todella tärkeää. Nämä kaksi kieltä eroavat niin paljon, että ne voivat itse asiassa olla toisistaan riippumattomia kaksi eri kieltä. Yksi asia on pitää mielessä, että C on paljon enemmän strukturoitua kuin C ++, kun taas C ++ on suunniteltu olemaan enemmän ilmaisevaa ja abstraktempaa kuin C.
C: n ja C ++: n vertailu:
C | C ++ | |
Perustettu | Kehittänyt Dennis Ritchie AT&T Bell Labsissa vuosina 1969 ja 1973. | Kehittänyt Bjarne Stroustrup Bell Labsissa vuodesta 1979 alkaen. |
Lähdekoodi | Vapaa muotoinen ohjelmalähde | Alun perin kehitetty C-ohjelmointikielestä |
Kieli | Menettelyn suuntainen kieli | Tukee sekä prosessi- että objekti-suuntautuneita ohjelmointiparadigmeja; siksi sitä kutsutaan usein hybridikieleksi. |
Lähestyä | Noudattaa ylhäältä alaspäin suuntautuvaa lähestymistapaa. | Noudattaa alhaalta ylöspäin suuntautuvaa lähestymistapaa. |
yhteys | C on C ++: n osajoukko. Se ei voi suorittaa C ++ -koodia. | C ++ on C. C ++: n superset, joka voi suorittaa suurimman osan C-koodista, kun taas C ei voi suorittaa C ++ -koodia. |
Ajaa | Toiminnallisella kielellä | Objektipohjainen kieli |
fokus | Keskittyy menetelmään tai prosessiin tietojen sijasta. | Keskittyy pikemminkin tietoihin kuin menetelmään tai menettelyyn. |
Rakennuspalikoita | tehtävät | esineet |
Avainsanat | Sisältää 32 avainsanaa | Sisältää 52 avainsanaa |
OOPS-käsitteet | Koska C-kieli on menettelyyn suuntautunut kieli, se ei tue OOPS-käsitteitä, kuten luokkaa, kohdetta, perintöä, polymorfiaa, datan piilottamista jne. | Objektikeskeisenä kielenä C ++ tukee luokkaa, kohdetta, datan piilottamista, polymorfiaa, perintöä, abstraktiota jne. |
tehtävät |
|
|
Muistitoiminnot | Käyttää calloc (), malloc () ja free () -toimintoja muistin jakamiseen ja jakamiseen. | Käyttää uusia operaattoreita ja poistaa niitä samaan tarkoitukseen. |
kapselointi | Ei tue. Tiedot ja toiminnot ovat erillisiä ja vapaita yksiköitä. | Tukee kapselointia. Tiedot ja toiminnot kapseloidaan yhteen objektin muodossa. Objektien luokka tarjoaa suunnitelman kohteen rakenteesta. |
Tiedot piilossa | C ei tue tietojen piilottamista. Tällöin tiedot ovat vapaita kokonaisuuksia, ja niitä voidaan muokata ulkopuolisella koodilla. | Kapselointi piilottaa tiedot varmistaakseen, että tietorakenteita ja operaattoreita käytetään tarkoitetulla tavalla. |
data | Tukee sisäänrakennettuja ja primitiivisiä tietotyyppejä. Tietoja ei ole suojattu ei-objektiivisesti suuntautuneiden | Tukee sekä sisäänrakennettua että käyttäjän määrittelemää tietotyyppiä. Tiedot on suojattu (piilotettu) C ++: ssa |
Taso | Matala taso | Keskitason kieli |
Panos-tuotos | C-kieli käyttää scanf () ja printf () tuloa ja lähtöä varten. | "C ++" kieli käyttää cin >> ja cout << operaattoreita tuloa ja lähtöä varten. |
Muuttujien ilmoitus | C vaatii yhden ilmoittamaan kaikki muuttujat ohjelman yläosassa. | C ++: ssa muuttujat voidaan ilmoittaa missä tahansa ohjelmassa ennen käyttöä. |
Useita ilmoituksia | Useat globaalien muuttujien ilmoitukset ovat sallittuja. | Useat globaalien muuttujien ilmoitukset eivät ole sallittuja. |
Kartoitus | Tiedon ja toiminnon välinen kartoitus on vaikeaa ja monimutkaista. | Tiedostojen ja toimintojen välistä kartoitusta voidaan käyttää "Objektien" avulla |
GUI-ohjelmointi | C tukee GTK-työkalua GUI-ohjelmointiin | C ++ tukee Qt-työkaluja GUI-ohjelmointiin |
perintö | Perintö ei ole mahdollista C: ssä | Perintö on mahdollista C ++: ssa |
Tiedostopääte | Onko tiedostotunniste .c | Onko tiedostotunniste .cpp |
Oletustiedoston otsikkotiedosto | C-kielessä käytetty oletusotsikon tiedosto on stdio.h | C ++: ssa käytetty oletusotsikkotiedosto on iosteam.h |
Esimerkkejä eroista C: n ja C ++: n välillä:
esimerkit | C | C ++ |
Muuttuva ilmoitus | Vain yläreunassa: int i; (i = 10; i <10; i ++) | Missä tahansa ohjelmassa: varten (int i = 10; i <10; i ++) |
Muistin jakaminen | malloc: int * x = malloc (koko (int)); int * x_array = malloc (koko (int) * 10); | Uusi: int * x = uusi int; int * x_array = uusi int [10]; |
Muistin vapauttaminen | Vapaa: vapaa (x); vapaa (x_array); | Poistaa: poista x; poista [] x_array; |