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 |