Similituds entre C i C++ són:
- Els dos idiomes tenen una sintaxi semblant.
- L'estructura del codi dels dos idiomes és la mateixa.
- La compilació dels dos idiomes és similar.
- Comparteixen la mateixa sintaxi bàsica. Gairebé tots els operadors i paraules clau de C també estan presents en C++ i fan el mateix.
- C++ té una gramàtica lleugerament estesa que C, però la gramàtica bàsica és la mateixa.
- El model de memòria bàsica de tots dos és molt proper al maquinari.
- Les mateixes nocions de pila, munt, àmbit de fitxer i variables estàtiques estan presents en ambdós idiomes.

model tcp ip
Diferències entre C i C++ són:
C++ sovint es veu com un superconjunt de C. C++ també es coneix com a C amb classe Això era gairebé cert quan es va crear originalment C++, però els dos idiomes han evolucionat amb el temps amb C agafant una sèrie de característiques que o bé eren. no s'ha trobat a la versió contemporània de C++ o encara no l'ha incorporat a cap versió de C++. Dit això, C++ segueix sent principalment un superconjunt d'addició de C Programació Orientada a Objectes , Tractament d'excepcions , Plantilles i una biblioteca estàndard més extensa.
cacauet vs cacauet
A continuació es mostra una taula d'algunes de les diferències més òbvies i generals entre C i C++. Hi ha moltes diferències més subtils entre les llengües i entre les versions de les llengües.
| C | C++ |
|---|---|
| C va ser desenvolupat per Dennis Ritchie entre l'any 1969 i el 1973 a AT&T Bell Labs. | C++ va ser desenvolupat per Bjarne Stroustrup el 1979. |
| C no admet polimorfisme, encapsulació i herència, la qual cosa significa que C no admet programació orientada a objectes. | Suporta C++ polimorfisme , encapsulació , i herència perquè és un llenguatge de programació orientat a objectes. |
| C és (principalment) un subconjunt de C++. | C++ és (principalment) un superconjunt de C. |
| Nombre de paraules clau en C: * C90: 32 * C99: 37 * C11: 44 * C23: 59 | Nombre de paraules clau en C++: * C++98: 63 * C++11: 73 * C++17: 73 * C++20: 81 |
| Per al desenvolupament de codi, C admet programació procedimental . | C++ es coneix com a llenguatge híbrid perquè C++ admet tots dos procedimental i paradigmes de programació orientada a objectes . |
| Les dades i les funcions estan separades en C perquè és un llenguatge de programació procedimental. | Les dades i les funcions s'encapsulen juntes en forma d'objecte en C++. |
| C no admet l'ocultació d'informació. | L'encapsulació oculta les dades per garantir que les estructures i els operadors de dades s'utilitzen com es pretén. |
| Els tipus de dades integrats són compatibles amb C. | Els tipus de dades integrats i definits per l'usuari són compatibles amb C++. |
| C és un llenguatge basat en funcions perquè C és un llenguatge de programació procedimental. | C++ és un llenguatge dirigit per objectes perquè és una programació orientada a objectes. |
| La sobrecàrrega de funcions i operadors no s'admet a C. | La sobrecàrrega de funcions i operadors és compatible amb C++. |
| C és un llenguatge basat en funcions. | C++ és un llenguatge dirigit per objectes |
| Les funcions en C no es defineixen dins d'estructures. | Les funcions es poden utilitzar dins d'una estructura en C++. |
| Les característiques de l'espai de noms no estan presents dins del C. | Espai de noms és utilitzat per C++, que evita col·lisions de noms. |
| La capçalera d'IO estàndard és stdio.h . | La capçalera d'IO estàndard és iostream.h . |
| Les variables de referència no són compatibles amb C. | Les variables de referència són compatibles amb C++. |
| Les funcions virtuals i d'amics no són compatibles amb C. | Virtual i funcions d'amic són compatibles amb C++. |
| C no admet l'herència. | C++ admet l'herència. |
| En lloc de centrar-se en les dades, C se centra en el mètode o procés. | C++ se centra en les dades en lloc de centrar-se en el mètode o procediment. |
| C proporciona malloc() i calloc() funcions per assignació de memòria dinàmica , i gratuït () per a la desassignació de memòria. | C++ proporciona nou operador per a l'assignació de memòria i suprimir l'operador per a la desassignació de memòria. |
| El suport directe per al maneig d'excepcions no és compatible amb C. | Tractament d'excepcions és compatible amb C++. |
| scanf() i les funcions printf() s'utilitzen per a l'entrada/sortida en C. | cin i cout serveixen per a entrada/sortida en C++ . |
| Les estructures C no tenen modificadors d'accés. | Les estructures C++ tenen modificadors d'accés. |
| No hi ha una verificació de tipus estricta en llenguatge de programació C. | La verificació de tipus estricte es fa en C++. Tants programes que funcionen bé al compilador C donaran lloc a molts avisos i errors amb el compilador C++. |
| C no admet la sobrecàrrega | C++ admet la sobrecàrrega |
| Es permet el joc de paraules amb unions (C99 i posteriors) | Els jocs de paraules amb els sindicats són un comportament indefinit (excepte en circumstàncies molt específiques) |
| Els inicialitzadors amb nom poden aparèixer fora d'ordre | Els inicialitzadors amb nom han de coincidir amb el disseny de dades de l'estructura |
| L'extensió del fitxer és .c | L'extensió del fitxer és .cpp o .c++ o .cc o .cxx |
| Metaprogramació: macros + _Generic() | Metaprogramació: plantilles (encara s'admeten les macros però no es recomanen) |
| Hi ha 32 paraules clau al C | Hi ha 97 paraules clau al C++ |