logo

Skirtumas tarp C ir C++

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