logo

Atšķirība starp C un C++

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