Podobnosti mezi C a C++ jsou:
java generika
- Oba jazyky mají podobnou syntaxi.
- Struktura kódu obou jazyků je stejná.
- Kompilace obou jazyků je podobná.
- Sdílejí stejnou základní syntaxi. Téměř všechny operátory a klíčová slova C jsou také přítomny v C++ a dělají to samé.
- C++ má mírně rozšířenou gramatiku než C, ale základní gramatika je stejná.
- Základní paměťový model obou je velmi blízký hardwaru.
- V obou jazycích jsou přítomny stejné pojmy jako zásobník, halda, rozsah souborů a statické proměnné.

Rozdíly mezi C a C++ jsou:
C++ je často považován za nadmnožinu jazyka C. C++ je také známý jako C s třídou To byla téměř pravda, když byl C++ původně vytvořen, ale tyto dva jazyky se postupem času vyvíjely, přičemž C získal řadu funkcí, které buď nebyly. nenašli jsme v současné verzi C++ nebo se stále nedostali do žádné verze C++. To znamená, že C++ je stále většinou nadmnožinou přidávání C Objektově orientované programování , Zpracování výjimek , Templating a rozsáhlejší standardní knihovna.
Níže je uvedena tabulka některých zjevnějších a obecných rozdílů mezi C a C++. Mezi jazyky a mezi verzemi jazyků je mnohem více jemných rozdílů.
| C | C++ |
|---|---|
| C vyvinul Dennis Ritchie v letech 1969 až 1973 v AT&T Bell Labs. | C++ vyvinul Bjarne Stroustrup v roce 1979. |
| C nepodporuje polymorfismus, zapouzdření a dědičnost, což znamená, že C nepodporuje objektově orientované programování. | C++ podporuje polymorfismus , zapouzdření , a dědictví protože je to objektově orientovaný programovací jazyk. |
| C je (většinou) podmnožinou C++. | C++ je (většinou) nadmnožinou C. |
| Počet klíčová slova v C: * C90: 32 *C99: 37 * C11: 44 * C23: 59 | Počet klíčová slova v C++: * C++98: 63 * C++11: 73 * C++17: 73 * C++20: 81 |
| Pro vývoj kódu podporuje C procedurální programování . | C++ je známý jako hybridní jazyk, protože C++ podporuje oba procesní a objektově orientované programovací paradigmata . |
| Data a funkce jsou v C odděleny, protože jde o procedurální programovací jazyk. | Data a funkce jsou společně zapouzdřeny ve formě objektu v C++. |
| C nepodporuje skrývání informací. | Data jsou zapouzdřením skryta, aby bylo zajištěno, že datové struktury a operátory budou použity tak, jak bylo zamýšleno. |
| Vestavěné datové typy jsou podporovány v C. | V C++ jsou podporovány vestavěné a uživatelem definované datové typy. |
| C je funkcemi řízený jazyk, protože C je procedurální programovací jazyk. | C++ je objektově řízený jazyk, protože se jedná o objektově orientované programování. |
| Přetížení funkcí a operátorů není v C podporováno. | C++ podporuje přetížení funkcí a operátorů. |
| C je funkčně řízený jazyk. | C++ je objektově řízený jazyk |
| Funkce v C nejsou definovány uvnitř struktur. | Funkce mohou být použity uvnitř struktury v C++. |
| Funkce jmenného prostoru nejsou uvnitř C. | Jmenný prostor používá C++, což zabraňuje kolizím jmen. |
| Standardní IO hlavička je stdio.h . | Standardní IO hlavička je iostream.h . |
| Referenční proměnné C nepodporuje. | Referenční proměnné jsou podporovány C++. |
| Virtuální a přátelské funkce nejsou podporovány C. | Virtuální a funkce přátel jsou podporovány C++. |
| C nepodporuje dědičnost. | C++ podporuje dědičnost. |
| Místo zaměření na data se C zaměřuje na metodu nebo proces. | C++ se zaměřuje na data namísto zaměření na metodu nebo postup. |
| C poskytuje malloc() a calloc() funkce pro dynamická alokace paměti , a volný, uvolnit() pro dealokaci paměti. | C++ poskytuje nového operátora pro alokaci paměti a odstranit operátor pro dealokaci paměti. |
| Přímá podpora pro zpracování výjimek není podporována C. | Zpracování výjimek je podporováno C++. |
| scanf() a funkce printf() se používají pro vstup/výstup v C. | cin a cout se používají pro vstup/výstup v C++ . |
| C struktury nemají modifikátory přístupu. | Struktury C++ mají modifikátory přístupu. |
| V programovacím jazyce C neexistuje žádná přísná kontrola typu. | Přísná kontrola typu se provádí v C++. Tolik programů, které dobře běží v kompilátoru C, bude mít za následek mnoho varování a chyb v kompilátoru C++. |
| C nepodporuje přetížení | C++ podporuje přetížení |
| Je povoleno ražení typů pomocí spojení (C99 a novější) | Ukládání typů pomocí odborů je nedefinované chování (s výjimkou velmi specifických okolností) |
| Pojmenované inicializátory se mohou objevit mimo provoz | Pojmenované inicializátory musí odpovídat rozložení dat struktury |
| Přípona souboru je .c | Přípona souboru je .cpp nebo .c++ nebo .cc nebo .cxx |
| Metaprogramování: makra + _Generic() | Metaprogramování: šablony (makra jsou stále podporována, ale nedoporučuje se) |
| V C je 32 klíčových slov | V C++ je 97 klíčových slov |