Līdzības starp C un C++ ir:
vaicājuma atlasītājs
- Abām valodām ir līdzīga sintakse.
- Abu valodu koda struktūra ir vienāda.
- Abu valodu kompilācija ir līdzīga.
- Viņiem ir viena un tā pati pamata sintakse. Gandrīz visi C operatori un atslēgvārdi ir pieejami arī C++ un dara to pašu.
- C++ ir nedaudz paplašināta gramatika nekā C, taču pamata gramatika ir tāda pati.
- Abu pamata atmiņas modelis ir ļoti tuvu aparatūrai.
- Abās valodās ir vienādi jēdzieni par kaudzi, kaudzi, faila darbības jomu un statiskajiem mainīgajiem.

Atšķirības starp C un C++ ir:
C++ bieži tiek uzskatīts par C superkopu. C++ ir pazīstams arī kā C ar klasi. Tas bija gandrīz taisnība, kad C++ sākotnēji tika izveidots, taču abas valodas laika gaitā ir attīstījušās, C ir ieguvusi vairākas funkcijas, kuras vai nu nebija. t atrodami mūsdienu C++ versijā vai joprojām nav nonākuši nevienā C++ versijā. Tomēr C++ joprojām lielākoties ir C pievienošanas superkopa Objektorientētā programmēšana , Izņēmumu apstrāde , Veidnes un plašāka standarta bibliotēka.
Zemāk ir tabula ar dažām acīmredzamākajām un vispārīgākajām atšķirībām starp C un C++. Starp valodām un valodu versijām ir daudz smalkāku atšķirību.
skeneris java
| C | C++ |
|---|---|
| C izstrādāja Deniss Ričijs no 1969. līdz 1973. gadam uzņēmumā AT&T Bell Labs. | C++ izstrādāja Bjarne Stroustrup 1979. gadā. |
| C neatbalsta polimorfismu, iekapsulēšanu un pārmantošanu, kas nozīmē, ka C neatbalsta objektorientētu programmēšanu. | C++ atbalsts polimorfisms , iekapsulēšana , un mantojums jo tā ir objektorientēta programmēšanas valoda. |
| C ir (galvenokārt) C++ apakškopa. | C++ ir (galvenokārt) C superkopa. |
| Skaits atslēgvārdi valodā C: * C90: 32 * C99: 37 * C11: 44 * C23: 59 | Skaits atslēgvārdi valodā C++: * C++98: 63 * C++11: 73 * C++17: 73 * C++20: 81 |
| Koda izstrādei C atbalsta procesuālā programmēšana . | C++ ir pazīstama kā hibrīda valoda, jo C++ atbalsta abus procesuāls un objektorientētas programmēšanas paradigmas . |
| Dati un funkcijas ir atdalīti C valodā, jo tā ir procesuālā programmēšanas valoda. | Dati un funkcijas ir iekapsulētas kopā objekta formā C++ valodā. |
| C neatbalsta informācijas slēpšanu. | Iekapsulēšana paslēpj datus, lai nodrošinātu, ka datu struktūras un operatori tiek izmantoti, kā paredzēts. |
| C versijā tiek atbalstīti iebūvētie datu veidi. | C++ tiek atbalstīti iebūvētie un lietotāja definētie datu veidi. |
| C ir funkciju vadīta valoda, jo C ir procesuālā programmēšanas valoda. | C++ ir objektu vadīta valoda, jo tā ir uz objektu orientēta programmēšana. |
| C formātā netiek atbalstīta funkcija un operatora pārslodze. | Funkciju un operatora pārslodzi atbalsta C++. |
| C ir funkciju vadīta valoda. | C++ ir objektu vadīta valoda |
| Funkcijas C nav definētas struktūrās. | Funkcijas var izmantot C++ struktūrā. |
| Nosaukumvietas funkcijas nav C iekšpusē. | Vārdtelpa izmanto C++, kas ļauj izvairīties no vārdu sadursmēm. |
| Standarta IO galvene ir stdio.h . | Standarta IO galvene ir iostream.h . |
| C neatbalsta atsauces mainīgos. | Atsauces mainīgos atbalsta C++. |
| C neatbalsta virtuālās un draugu funkcijas. | Virtuāls un drauga funkcijas atbalsta C++. |
| C neatbalsta mantojumu. | C++ atbalsta mantošanu. |
| Tā vietā, lai koncentrētos uz datiem, C koncentrējas uz metodi vai procesu. | C++ koncentrējas uz datiem, nevis uz metodi vai procedūru. |
| C nodrošina malloc () un calloc() funkcijas priekš dinamiska atmiņas piešķiršana , un bezmaksas () atmiņas atdalīšanai. | C++ nodrošina jauns operators atmiņas piešķiršanai un dzēst operatoru atmiņas atdalīšanai. |
| C neatbalsta tiešo atbalstu izņēmumu apstrādei. | Izņēmuma apstrāde atbalsta C++. |
| scanf() un printf() funkcijas tiek izmantotas ievadei/izvadei C valodā. | cin un cout tiek izmantoti ievade/izvade C++ valodā . |
| C struktūrām nav piekļuves modifikatoru. | C ++ struktūrām ir piekļuves modifikatori. |
| C programmēšanas valodā nav stingras tipa pārbaudes. | Stingra tipa pārbaude tiek veikta C++ valodā. Tik daudzas programmas, kas labi darbojas C kompilatorā, C++ kompilatorā radīs daudz brīdinājumu un kļūdu. |
| C neatbalsta pārslodzi | C++ atbalsta pārslodzi |
| Ir atļauta burtu rakstīšana ar savienībām (C99 un jaunāki) | Raksturošana ar arodbiedrībām ir nedefinēta uzvedība (izņemot ļoti īpašus apstākļus) |
| Nosauktie inicializatori var nebūt kārtībā | Nosauktajiem inicializatoriem ir jāatbilst struktūras datu izkārtojumam |
| Faila paplašinājums ir .c | Faila paplašinājums ir .cpp vai .c++ vai .cc vai .cxx |
| Metaprogrammēšana: makro + _Generic() | Metaprogrammēšana: veidnes (makro joprojām tiek atbalstīti, bet nav ieteicami) |
| C ir 32 atslēgvārdi | C++ valodā ir 97 atslēgvārdi |