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 |