logo

Rozdiel medzi C a C++

Podobnosti medzi C a C++ sú:

  • Oba jazyky majú podobnú syntax.
  • Štruktúra kódu oboch jazykov je rovnaká.
  • Kompilácia oboch jazykov je podobná.
  • Zdieľajú rovnakú základnú syntax. Takmer všetky operátory a kľúčové slová C sú prítomné aj v C++ a robia to isté.
  • C++ má mierne rozšírenú gramatiku ako C, ale základná gramatika je rovnaká.
  • Základný pamäťový model oboch je veľmi blízky hardvéru.
  • V oboch jazykoch sú prítomné rovnaké pojmy zásobníka, haldy, rozsahu súboru a statických premenných.



Rozdiely medzi C a C++ sú:
C++ sa často považuje za nadmnožinu jazyka C. C++ je tiež známy ako C s triedou To bola takmer pravda, keď bol C++ pôvodne vytvorený, ale tieto dva jazyky sa časom vyvíjali, pričom C získalo množstvo funkcií, ktoré buď neboli. nenašli v súčasnej verzii C++ alebo sa stále nedostali do žiadnej verzie C++. To znamená, že C++ je stále väčšinou nadmnožinou pridávania C Objektovo orientované programovanie , Spracovanie výnimiek , šablóny a rozsiahlejšiu štandardnú knižnicu.

Nižšie je uvedená tabuľka niektorých zrejmejších a všeobecných rozdielov medzi C a C++. Medzi jazykmi a medzi verziami jazykov je oveľa jemnejších rozdielov.

C C++
C vyvinul Dennis Ritchie v rokoch 1969 až 1973 v AT&T Bell Labs. C++ vyvinul Bjarne Stroustrup v roku 1979.
C nepodporuje polymorfizmus, zapuzdrenie a dedičnosť, čo znamená, že C nepodporuje objektovo orientované programovanie. C++ podporuje polymorfizmus , zapuzdrenie , a dedičstvo pretože ide o objektovo orientovaný programovací jazyk.
C je (väčšinou) podmnožinou C++. C++ je (väčšinou) nadmnožinou C.
Počet Kľúčové slová v C:
* C90: 32
*C99: 37
* C11: 44
* C23: 59
Počet Kľúčové slová v C++:
* C++98: 63
* C++11: 73
* C++17: 73
* C++20: 81
Pre vývoj kódu podporuje C procedurálne programovanie . C++ je známy ako hybridný jazyk, pretože C++ podporuje oboje procedurálne a objektovo orientované programovacie paradigmy .
Dáta a funkcie sú v C oddelené, pretože ide o procedurálny programovací jazyk. Dáta a funkcie sú spolu zapuzdrené vo forme objektu v C++.
C nepodporuje skrývanie informácií. Údaje sú skryté zapuzdrením, aby sa zabezpečilo, že dátové štruktúry a operátori sa používajú podľa plánu.
Vstavané dátové typy sú podporované v C. V C++ sú podporované vstavané a používateľom definované typy údajov.
C je funkčne riadený jazyk, pretože C je procedurálny programovací jazyk. C++ je objektovo riadený jazyk, pretože ide o objektovo orientované programovanie.
Preťaženie funkcií a operátorov nie je podporované v C. C++ podporuje preťaženie funkcií a operátorov.
C je funkčne riadený jazyk. C++ je objektovo riadený jazyk
Funkcie v C nie sú definované vo vnútri štruktúr. Funkcie možno použiť vo vnútri štruktúry v C++.
Funkcie menného priestoru nie sú prítomné vo vnútri C. Menný priestor používa C++, čo zabraňuje kolíziám mien.
Štandardná IO hlavička je stdio.h . Štandardná IO hlavička je iostream.h .
Referenčné premenné nepodporuje C. Referenčné premenné sú podporované C++.
Virtuálne a priateľské funkcie C nepodporuje. Virtuálne a funkcie priateľov sú podporované C++.
C nepodporuje dedičnosť. C++ podporuje dedičnosť.
Namiesto zamerania sa na údaje sa C zameriava na metódu alebo proces. C++ sa zameriava na údaje namiesto zamerania sa na metódu alebo postup.
C poskytuje malloc() a calloc() funkcie pre dynamická alokácia pamäte , a zadarmo() pre dealokáciu pamäte. C++ poskytuje nového operátora na pridelenie pamäte a operátor vymazania pre dealokáciu pamäte.
Priama podpora spracovania výnimiek nie je podporovaná C. Spracovanie výnimiek je podporovaný C++.
scanf() a funkcie printf() sa používajú na vstup/výstup v C. cin a cout sa používajú na vstup/výstup v C++ .
C štruktúry nemajú modifikátory prístupu. Štruktúry C++ majú modifikátory prístupu.
V programovacom jazyku C neexistuje prísna kontrola typu. Prísna kontrola typu sa vykonáva v C++. Toľko programov, ktoré fungujú dobre v kompilátore C, bude mať za následok veľa varovaní a chýb v kompilátore C++.
C nepodporuje preťaženie C++ podporuje preťaženie
Je povolené prepisovanie typov pomocou zväzkov (C99 a novšie) Presadzovanie typov pomocou odborov je nedefinované správanie (okrem veľmi špecifických okolností)
Pomenované inicializátory sa môžu objaviť nefunkčné Pomenované inicializátory sa musia zhodovať s rozložením údajov štruktúry
Prípona súboru je .c Prípona súboru je .cpp alebo .c++ alebo .cc alebo .cxx
Metaprogramovanie: makrá + _Generic() Metaprogramovanie: šablóny (makrá sú stále podporované, ale neodporúčame ich)
V C je 32 kľúčových slov V C++ je 97 kľúčových slov