logo

Forskellen mellem C og C++

Ligheder mellem C og C++ er:

  • Begge sprog har en lignende syntaks.
  • Kodestrukturen for begge sprog er den samme.
  • Samlingen af ​​begge sprog er ens.
  • De deler den samme grundlæggende syntaks. Næsten alle C's operatorer og nøgleord er også til stede i C++ og gør det samme.
  • C++ har en lidt udvidet grammatik end C, men den grundlæggende grammatik er den samme.
  • Grundlæggende hukommelsesmodel af begge er meget tæt på hardwaren.
  • De samme forestillinger om stack, heap, filomfang og statiske variabler er til stede i begge sprog.



Forskelle mellem C og C++ er:
C++ betragtes ofte som et supersæt af C. C++ er også kendt som et C med klasse. Dette var næsten rigtigt, da C++ oprindeligt blev oprettet, men de to sprog har udviklet sig over tid, hvor C har opfanget en række funktioner, der enten var t fundet i den moderne version af C++ eller stadig ikke er blevet til nogen version af C++. Når det er sagt, er C++ stadig for det meste et supersæt af C-tilføjelse Objektorienteret programmering , Undtagelseshåndtering , skabeloner og et mere omfattende standardbibliotek.

Nedenfor er en tabel over nogle af de mere åbenlyse og generelle forskelle mellem C og C++. Der er mange mere subtile forskelle mellem sprogene og mellem versioner af sprogene.

C C++
C blev udviklet af Dennis Ritchie mellem år 1969 og 1973 på AT&T Bell Labs. C++ blev udviklet af Bjarne Stroustrup i 1979.
C understøtter ikke polymorfi, indkapsling og nedarvning, hvilket betyder, at C ikke understøtter objektorienteret programmering. C++ understøtter polymorfi , indkapsling , og arv fordi det er et objektorienteret programmeringssprog.
C er (for det meste) en delmængde af C++. C++ er (for det meste) et supersæt af C.
Antallet af søgeord i C:
* C90: 32
* C99: 37
* C11: 44
* C23: 59
Antallet af søgeord i C++:
* C++98: 63
* C++11: 73
* C++17: 73
* C++20: 81
Til udvikling af kode understøtter C proceduremæssig programmering . C++ er kendt som hybridsprog, fordi C++ understøtter begge dele proceduremæssige og objektorienterede programmeringsparadigmer .
Data og funktioner er adskilt i C, fordi det er et proceduremæssigt programmeringssprog. Data og funktioner er indkapslet sammen i form af et objekt i C++.
C understøtter ikke at skjule oplysninger. Data skjules af indkapslingen for at sikre, at datastrukturer og operatører bruges efter hensigten.
Indbyggede datatyper understøttes i C. Indbyggede og brugerdefinerede datatyper understøttes i C++.
C er et funktionsdrevet sprog, fordi C er et proceduremæssigt programmeringssprog. C++ er et objektdrevet sprog, fordi det er en objektorienteret programmering.
Funktion og operatøroverbelastning understøttes ikke i C. Funktion og operatøroverbelastning understøttes af C++.
C er et funktionsdrevet sprog. C++ er et objektdrevet sprog
Funktioner i C er ikke defineret inde i strukturer. Funktioner kan bruges inde i en struktur i C++.
Navneområdefunktioner er ikke til stede i C. Navneområde bruges af C++, som undgår navnekollisioner.
Standard IO header er stdio.h . Standard IO header er iostream.h .
Referencevariabler understøttes ikke af C. Referencevariabler understøttes af C++.
Virtuelle funktioner og vennefunktioner understøttes ikke af C. Virtuelt og vennefunktioner understøttes af C++.
C understøtter ikke arv. C++ understøtter arv.
I stedet for at fokusere på data, fokuserer C på metode eller proces. C++ fokuserer på data i stedet for at fokusere på metode eller procedure.
C giver malloc() og calloc() funktioner til dynamisk hukommelsesallokering , og gratis() til hukommelsesdeallokering. C++ giver ny operatør til hukommelsestildeling og slet operatør til hukommelsesdeallokering.
Direkte support til undtagelseshåndtering understøttes ikke af C. Undtagelseshåndtering er understøttet af C++.
scanf() og printf()-funktioner bruges til input/output i C. cin og cout bruges til input/output i C++ .
C-strukturer har ikke adgangsmodifikatorer. C ++ strukturer har adgangsmodifikatorer.
Der er ingen streng typekontrol i programmeringssproget C. Streng type indtjekning udført i C++. Så mange programmer, der kører godt i C compiler, vil resultere i mange advarsler og fejl under C++ compiler.
C understøtter ikke overbelastning C++ understøtter overbelastning
Tekstspil med fagforeninger er tilladt (C99 og senere) Typisk ordspil med fagforeninger er udefineret adfærd (undtagen under meget specifikke omstændigheder)
Navngivne initialiseringer kan forekomme ude af drift Navngivne initialiseringsprogrammer skal matche strukturens datalayout
Filtypenavnet er .c Filtypenavnet er .cpp eller .c++ eller .cc eller .cxx
Meta-programmering: makroer + _Generisk() Meta-programmering: skabeloner (makroer understøttes stadig, men frarådes)
Der er 32 nøgleord i C Der er 97 nøgleord i C++