logo

Rozdíl mezi C a C++

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