logo

Forskjellen mellom C og C++

Likheter mellom C og C++ er:

  • Begge språkene har en lignende syntaks.
  • Kodestrukturen til begge språkene er den samme.
  • Sammenstillingen av begge språkene er lik.
  • De deler den samme grunnleggende syntaksen. Nesten alle Cs operatører og nøkkelord er også til stede i C++ og gjør det samme.
  • C++ har en litt utvidet grammatikk enn C, men den grunnleggende grammatikken er den samme.
  • Grunnleggende minnemodell av begge er veldig nær maskinvaren.
  • De samme forestillingene om stabel, heap, filomfang og statiske variabler er tilstede i begge språkene.



Forskjeller mellom C og C++ er:
C++ blir ofte sett på som et supersett av C. C++ er også kjent som en C med klasse. Dette var nesten sant da C++ opprinnelig ble opprettet, men de to språkene har utviklet seg over tid med C som plukket opp en rekke funksjoner som enten var ikke funnet i den moderne versjonen av C++ eller har fortsatt ikke gjort det til noen versjon av C++. Når det er sagt, er C++ fortsatt stort sett et supersett av C-tilsetning Objektorientert programmering , Avvikshåndtering , maler og et mer omfattende standardbibliotek.

Nedenfor er en tabell over noen av de mer åpenbare og generelle forskjellene mellom C og C++. Det er mange mer subtile forskjeller mellom språkene og mellom versjoner av språkene.

C C++
C ble utviklet av Dennis Ritchie mellom 1969 og 1973 ved AT&T Bell Labs. C++ ble utviklet av Bjarne Stroustrup i 1979.
C støtter ikke polymorfisme, innkapsling og arv, noe som betyr at C ikke støtter objektorientert programmering. C++ støtter polymorfisme , innkapsling , og arv fordi det er et objektorientert programmeringsspråk.
C er (for det meste) en delmengde av C++. C++ er (for det meste) et supersett av C.
Antall søkeord i C:
* C90: 32
* C99: 37
* C11: 44
* C23: 59
Antall søkeord i C++:
* C++98: 63
* C++11: 73
* C++17: 73
* C++20: 81
For utvikling av kode, støtter C prosedyreprogrammering . C++ er kjent som hybridspråk fordi C++ støtter begge prosedyremessig og objektorienterte programmeringsparadigmer .
Data og funksjoner er atskilt i C fordi det er et prosedyrespråk. Data og funksjoner er innkapslet sammen i form av et objekt i C++.
C støtter ikke skjult informasjon. Data skjules av innkapslingen for å sikre at datastrukturer og operatører brukes etter hensikten.
Innebygde datatyper støttes i C. Innebygde og brukerdefinerte datatyper støttes i C++.
C er et funksjonsdrevet språk fordi C er et prosedyrespråk. C++ er et objektdrevet språk fordi det er en objektorientert programmering.
Funksjon og operatøroverbelastning støttes ikke i C. Funksjon og operatøroverbelastning støttes av C++.
C er et funksjonsdrevet språk. C++ er et objektdrevet språk
Funksjoner i C er ikke definert inne i strukturer. Funksjoner kan brukes inne i en struktur i C++.
Navneområdefunksjoner finnes ikke inne i C. Navneområde brukes av C++, som unngår navnekollisjoner.
Standard IO-header er stio.h . Standard IO-header er iostream.h .
Referansevariabler støttes ikke av C. Referansevariabler støttes av C++.
Virtuelle funksjoner og vennefunksjoner støttes ikke av C. Virtuell og vennefunksjoner støttes av C++.
C støtter ikke arv. C++ støtter arv.
I stedet for å fokusere på data, fokuserer C på metode eller prosess. C++ fokuserer på data i stedet for å fokusere på metode eller prosedyre.
C gir malloc() og calloc() funksjoner for dynamisk minnetildeling , og gratis() for minnedeallokering. C++ gir ny operatør for minnetildeling og slett operatør for minnedeallokering.
Direkte støtte for unntakshåndtering støttes ikke av C. Avvikshåndtering støttes av C++.
scanf() og printf()-funksjoner brukes for input/output i C. cin og cout brukes til input/output i C++ .
C-strukturer har ikke tilgangsmodifikatorer. C ++-strukturer har tilgangsmodifikatorer.
Det er ingen streng typekontroll i programmeringsspråket C. Streng type innsjekk utført i C++. Så mange programmer som kjører bra i C-kompilatoren vil resultere i mange advarsler og feil under C++-kompilatoren.
C støtter ikke overbelastning C++ støtter overbelastning
Tekstspilling med fagforeninger er tillatt (C99 og senere) Typer ordspilling med fagforeninger er udefinert oppførsel (bortsett fra i svært spesifikke omstendigheter)
Navngitte initialisatorer kan vises ute av funksjon Navngitte initialisatorer må samsvare med dataoppsettet til strukturen
Filtypen er .c Filtypen er .cpp eller .c++ eller .cc eller .cxx
Metaprogrammering: makroer + _Generic() Metaprogrammering: maler (makroer støttes fortsatt, men frarådes)
Det er 32 nøkkelord i C Det er 97 nøkkelord i C++