logo

Razlika med C in C++

Podobnosti med C in C++ so:

  • Oba jezika imata podobno sintakso.
  • Struktura kode obeh jezikov je enaka.
  • Prevajanje obeh jezikov je podobno.
  • Imajo isto osnovno sintakso. Skoraj vsi operaterji in ključne besede jezika C so prisotni tudi v jeziku C++ in delujejo enako.
  • C++ ima nekoliko razširjeno slovnico kot C, vendar je osnovna slovnica enaka.
  • Osnovni pomnilniški model obeh je zelo blizu strojni opremi.
  • Isti pojmi sklada, kopice, obsega datoteke in statičnih spremenljivk so prisotni v obeh jezikih.



mamta kulkarni

Razlike med C in C++ so:
Na C++ se pogosto gleda kot na nadmnožico C. C++ je znan tudi kot C z razredom. To je bilo skoraj res, ko je bil C++ prvotno ustvarjen, vendar sta se jezika sčasoma razvila, tako da je C prevzel številne funkcije, ki so bile t najdemo v sodobni različici C++ ali še vedno niso prišli v nobeno različico C++. Kljub temu je C++ še vedno večinoma nadmnožica dodajanja C Objektno orientirano programiranje , Obravnava izjem , Predloge in obsežnejša standardna knjižnica.

starost mie khalife

Spodaj je tabela nekaterih bolj očitnih in splošnih razlik med C in C++. Obstaja veliko bolj subtilnih razlik med jeziki in med različicami jezikov.

C C++
C je razvil Dennis Ritchie med letoma 1969 in 1973 v AT&T Bell Labs. C++ je leta 1979 razvil Bjarne Stroustrup.
C ne podpira polimorfizma, enkapsulacije in dedovanja, kar pomeni, da C ne podpira objektno usmerjenega programiranja. C++ podpira polimorfizem , enkapsulacija , in dedovanje ker je objektno usmerjen programski jezik.
C je (večinoma) podnabor C++. C++ je (večinoma) nadnabor jezika C.
Število ključne besede v C:
* C90: 32
* C99: 37
* C11: 44
* C23: 59
Število ključne besede v C++:
* C++98: 63
* C++11: 73
* C++17: 73
* C++20: 81
Za razvoj kode podpira C proceduralno programiranje . C++ je znan kot hibridni jezik, ker C++ podpira oboje postopkovno in paradigme objektno usmerjenega programiranja .
Podatki in funkcije so v C ločeni, ker je to proceduralni programski jezik. Podatki in funkcije so enkapsulirani skupaj v obliki predmeta v C++.
C ne podpira skrivanja informacij. Enkapsulacija skrije podatke, da zagotovi, da se podatkovne strukture in operaterji uporabljajo, kot je predvideno.
V C so podprti vgrajeni podatkovni tipi. V C++ so podprti vgrajeni in uporabniško definirani tipi podatkov.
C je funkcijsko voden jezik, ker je C proceduralni programski jezik. C++ je objektno usmerjen jezik, ker je objektno usmerjeno programiranje.
Preobremenitev funkcij in operaterjev ni podprta v C. Preobremenitev funkcij in operatorjev podpira C++.
C je jezik, ki ga poganjajo funkcije. C++ je objektno voden jezik
Funkcije v C niso definirane znotraj struktur. Funkcije se lahko uporabljajo znotraj strukture v C++.
Funkcije imenskega prostora niso prisotne znotraj C. Imenski prostor uporablja C++, ki preprečuje trke imen.
Standardna glava IO je stdio.h . Standardna glava IO je iostream.h .
C ne podpira referenčnih spremenljivk. Referenčne spremenljivke podpira C++.
C ne podpira virtualnih in prijateljskih funkcij. Virtualno in prijateljske funkcije podpira C++.
C ne podpira dedovanja. C++ podpira dedovanje.
Namesto osredotočanja na podatke se C osredotoča na metodo ali proces. C++ se osredotoča na podatke namesto na metodo ali proceduro.
C zagotavlja malloc() in calloc() funkcije za dinamično dodeljevanje pomnilnika , in prost() za sprostitev pomnilnika. C++ zagotavlja nov operater za dodelitev pomnilnika in brisanje operaterja za sprostitev pomnilnika.
C ne podpira neposredne podpore za obravnavanje izjem. Obravnava izjem podpira C++.
scanf() in printf() se uporabljata za vhod/izhod v C. cin in cout se uporabljajo za vhod/izhod v C++ .
Strukture C nimajo modifikatorjev dostopa. Strukture C ++ imajo modifikatorje dostopa.
V programskem jeziku C ni strogega preverjanja tipov. Strogo preverjanje tipa v C++. Toliko programov, ki dobro delujejo v prevajalniku C, bo v prevajalniku C++ povzročilo veliko opozoril in napak.
C ne podpira preobremenitve C++ podpira preobremenitev
Punjenje tipov z zvezami je dovoljeno (C99 in novejši) Igranje besed z zvezami je nedefinirano vedenje (razen v zelo posebnih okoliščinah)
Imenovani inicializatorji se lahko prikažejo nepravilno Poimenovani inicializatorji se morajo ujemati s postavitvijo podatkov strukture
Končnica datoteke je .c Končnica datoteke je .cpp ali .c++ ali .cc ali .cxx
Metaprogramiranje: makri + _Generic() Metaprogramiranje: predloge (makri so še vedno podprti, vendar jih odsvetujemo)
V C je 32 ključnih besed V C++ je 97 ključnih besed