Likheter mellan C och C++ är:
- Båda språken har en liknande syntax.
- Kodstrukturen för båda språken är densamma.
- Sammanställningen av båda språken är likartad.
- De delar samma grundläggande syntax. Nästan alla C:s operatorer och nyckelord finns också i C++ och gör samma sak.
- C++ har en något utökad grammatik än C, men den grundläggande grammatiken är densamma.
- Grundläggande minnesmodell av båda är mycket nära hårdvaran.
- Samma begrepp om stack, heap, filomfattning och statiska variabler finns i båda språken.

Skillnader mellan C och C++ är:
C++ ses ofta som en superuppsättning av C. C++ är också känd som en C med klass. Detta var nästan sant när C++ ursprungligen skapades, men de två språken har utvecklats över tiden med C som plockar upp ett antal funktioner som antingen var inte finns i den samtida versionen av C++ eller har fortfarande inte gjort det till någon version av C++. Som sagt, C++ är fortfarande mestadels en superset av C-tillägg Objektorienterad programmering , Undantagshantering , Mallar och ett mer omfattande standardbibliotek.
Nedan är en tabell över några av de mer uppenbara och allmänna skillnaderna mellan C och C++. Det finns många mer subtila skillnader mellan språken och mellan versioner av språken.
java oops koncept
| C | C++ |
|---|---|
| C utvecklades av Dennis Ritchie mellan åren 1969 och 1973 vid AT&T Bell Labs. | C++ utvecklades av Bjarne Stroustrup 1979. |
| C stöder inte polymorfism, inkapsling och arv vilket betyder att C inte stöder objektorienterad programmering. | C++ stöder polymorfism , inkapsling , och arv eftersom det är ett objektorienterat programmeringsspråk. |
| C är (för det mesta) en delmängd av C++. | C++ är (för det mesta) en supermängd av C. |
| Antal nyckelord i C: * C90: 32 * C99: 37 * C11: 44 * C23: 59 | Antal nyckelord i C++: * C++98: 63 * C++11: 73 * C++17: 73 * C++20: 81 |
| För utveckling av kod stöder C procedurprogrammering . | C++ är känt som hybridspråk eftersom C++ stöder båda processuella och objektorienterade programmeringsparadigm . |
| Data och funktioner separeras i C eftersom det är ett procedurmässigt programmeringsspråk. | Data och funktioner är inkapslade tillsammans i form av ett objekt i C++. |
| C stöder inte informationsdöljning. | Data döljs av Inkapslingen för att säkerställa att datastrukturer och operatörer används som avsett. |
| Inbyggda datatyper stöds i C. | Inbyggda och användardefinierade datatyper stöds i C++. |
| C är ett funktionsdrivet språk eftersom C är ett processuellt programmeringsspråk. | C++ är ett objektdrivet språk eftersom det är en objektorienterad programmering. |
| Funktion och operatörsöverbelastning stöds inte i C. | Funktion och operatörsöverbelastning stöds av C++. |
| C är ett funktionsdrivet språk. | C++ är ett objektdrivet språk |
| Funktioner i C är inte definierade inuti strukturer. | Funktioner kan användas inuti en struktur i C++. |
| Namnutrymmesfunktioner finns inte i C. | Namnutrymme används av C++, som undviker namnkollisioner. |
| Standard IO header är stdio.h . | Standard IO header är iostream.h . |
| Referensvariabler stöds inte av C. | Referensvariabler stöds av C++. |
| Virtuella funktioner och vänfunktioner stöds inte av C. | Virtuell och vänfunktioner stöds av C++. |
| C stöder inte arv. | C++ stöder arv. |
| Istället för att fokusera på data fokuserar C på metod eller process. | C++ fokuserar på data istället för att fokusera på metod eller procedur. |
| C tillhandahåller malloc() och calloc() funktioner för dynamisk minnesallokering , och fri() för minnesdeallokering. | C++ tillhandahåller ny operatör för minnestilldelning och ta bort operatör för minnesdeallokering. |
| Direktstöd för undantagshantering stöds inte av C. | Undantagshantering stöds av C++. |
| scanf() och printf()-funktioner används för input/output i C. | cin och cout används för input/output i C++ . |
| C-strukturer har inte åtkomstmodifierare. | C ++-strukturer har åtkomstmodifierare. |
| Det finns ingen strikt typkontroll i programmeringsspråket C. | Strikt incheckning utförd i C++. Så många program som fungerar bra i C-kompilatorn kommer att resultera i många varningar och fel under C++-kompilatorn. |
| C stöder inte överbelastning | C++ stöder överbelastning |
| Typpunning med fackföreningar är tillåtet (C99 och senare) | Typpunkning med fackföreningar är odefinierat beteende (förutom under mycket specifika omständigheter) |
| Namngivna initialiserare kan visas ur funktion | Namngivna initialiserare måste matcha strukturens datalayout |
| Filändelsen är .c | Filtillägget är .cpp eller .c++ eller .cc eller .cxx |
| Metaprogrammering: makron + _Generic() | Metaprogrammering: mallar (makron stöds fortfarande men avråds från) |
| Det finns 32 nyckelord i C | Det finns 97 nyckelord i C++ |