Panašumai tarp C ir C++ yra:
- Abi kalbos turi panašią sintaksę.
- Abiejų kalbų kodų struktūra yra vienoda.
- Abiejų kalbų kompiliacija yra panaši.
- Jie turi tą pačią pagrindinę sintaksę. Beveik visi C operatoriai ir raktiniai žodžiai taip pat yra C++ ir daro tą patį.
- C++ gramatika yra šiek tiek išplėsta nei C, tačiau pagrindinė gramatika yra ta pati.
- Pagrindinis abiejų atminties modelis yra labai artimas aparatinei įrangai.
- Abiejose kalbose yra tos pačios sąvokos apie krūvą, krūvą, failo apimtis ir statinius kintamuosius.

android procesas acore vis sustoja
Skirtumai tarp C ir C++ yra:
C++ dažnai vertinamas kaip C superrinkinys. C++ taip pat žinomas kaip C su klase. Tai buvo beveik tiesa, kai iš pradžių buvo sukurta C++, tačiau laikui bėgant šios dvi kalbos vystėsi ir C įgavo daug funkcijų, kurios arba nebuvo t rasti šiuolaikinėje C++ versijoje arba vis dar nepateko į jokią C++ versiją. Beje, C++ vis dar dažniausiai yra C pridėjimo superrinkinys Objektinis programavimas , Išimčių tvarkymas , šablonai ir platesnė standartinė biblioteka.
Žemiau yra keletas akivaizdesnių ir bendresnių skirtumų tarp C ir C++ lentelė. Yra daug subtilesnių skirtumų tarp kalbų ir tarp kalbų versijų.
| C | C++ |
|---|---|
| C sukūrė Dennis Ritchie 1969–1973 m. AT&T Bell Labs. | C++ sukūrė Bjarne'as Stroustrupas 1979 m. |
| C nepalaiko polimorfizmo, inkapsuliavimo ir paveldėjimo, o tai reiškia, kad C nepalaiko objektinio programavimo. | C++ palaiko polimorfizmas , inkapsuliavimas , ir paveldėjimo nes tai yra objektinė programavimo kalba. |
| C yra (dažniausiai) C++ poaibis. | C++ yra (dažniausiai) C superrinkinys. |
| Skaičius raktinius žodžius C: * C90: 32 * C99: 37 * C11: 44 * C23: 59 | Skaičius raktinius žodžius C++ kalboje: * C++98: 63 * C++11: 73 * C++17: 73 * C++20: 81 |
| Kodo kūrimui C palaiko procedūrinis programavimas . | C++ yra žinoma kaip hibridinė kalba, nes C++ palaiko abu procedūrinis ir Objektinio programavimo paradigmos . |
| Duomenys ir funkcijos C yra atskirti, nes tai yra procedūrinė programavimo kalba. | Duomenys ir funkcijos C++ įterpiami į objektą. |
| C nepalaiko informacijos slėpimo. | Inkapsuliacija paslepia duomenis, kad duomenų struktūros ir operatoriai būtų naudojami taip, kaip numatyta. |
| Integruoti duomenų tipai palaikomi C. | Įtaisytieji ir vartotojo nustatyti duomenų tipai palaikomi C++. |
| C yra funkcija valdoma kalba, nes C yra procedūrinio programavimo kalba. | C++ yra objektu valdoma kalba, nes tai yra objektinis programavimas. |
| Funkcijų ir operatoriaus perkrova nepalaikoma C. | Funkcijos ir operatoriaus perkrovimas palaikomas C++. |
| C yra funkcija pagrįsta kalba. | C++ yra objektais valdoma kalba |
| C funkcijos nėra apibrėžtos struktūrų viduje. | Funkcijos gali būti naudojamos C++ struktūroje. |
| Vardų erdvės funkcijos nėra C viduje. | Vardų erdvė naudojamas C++, kuris vengia vardų susidūrimų. |
| Standartinė IO antraštė yra stdio.h . | Standartinė IO antraštė yra iostream.h . |
| Nuorodos kintamieji nepalaikomi C. | Nuorodos kintamuosius palaiko C++. |
| Virtualios ir draugo funkcijos nepalaikomos C. | Virtualus ir draugo funkcijos palaiko C++. |
| C nepalaiko paveldėjimo. | C++ palaiko paveldėjimą. |
| Užuot sutelkęs dėmesį į duomenis, C sutelkia dėmesį į metodą ar procesą. | C++ sutelkia dėmesį į duomenis, o ne į metodą ar procedūrą. |
| C numato malloc () ir calloc() funkcijos, skirtos dinaminis atminties paskirstymas , ir Laisvas() atminties panaikinimui. | C++ suteikia naujas operatorius atminties paskirstymui ir ištrinti operatorių atminties panaikinimui. |
| Tiesioginio išimčių tvarkymo palaikymo nepalaiko C. | Išimčių tvarkymas palaiko C++. |
| scanf() ir printf() funkcijos naudojamos įvesties / išvesties C. | cin ir cout yra naudojami įvestis / išvestis C++ . |
| C struktūros neturi prieigos modifikatorių. | C ++ struktūros turi prieigos modifikatorius. |
| C programavimo kalba nėra griežto tipo tikrinimo. | Griežtas tipo tikrinimas atliekamas C++. Tiek daug programų, kurios gerai veikia C kompiliatoriuje, sukels daug įspėjimų ir klaidų naudojant C++ kompiliatorių. |
| C nepalaiko perkrovos | C++ palaiko perkrovą |
| Leidžiamas šriftas su sąjungomis (C99 ir naujesnės versijos) | Tipiškas žodinis su sąjungomis elgesys yra neapibrėžtas (išskyrus labai specifines aplinkybes) |
| Pavadinti iniciatoriai gali pasirodyti neveikiantys | Pavadinti iniciatoriai turi atitikti struktūros duomenų išdėstymą |
| Failo plėtinys yra .c | Failo plėtinys yra .cpp arba .c++ arba .cc arba .cxx |
| Meta programavimas: makrokomandos + _Generic() | Meta programavimas: šablonai (makrokomandos vis dar palaikomos, bet nerekomenduojamos) |
| C yra 32 raktiniai žodžiai | C++ yra 97 raktiniai žodžiai |