Galvenā atšķirība: C un C ++ ir divas dažādas datorprogrammēšanas valodas. C + + tika izstrādāta no C programmēšanas valodas; tomēr tie ir diezgan atšķirīgi. Acīmredzamākā atšķirība ir tā, ka C ir uz procesu orientēta valoda, bet C + + atbalsta gan procesuālo, gan objektorientēto programmēšanu, tāpēc to bieži sauc par hibrīda valodu.
C ir viena no vecākajām pašlaik lietotajām programmēšanas valodām un ir viena no visbiežāk lietotajām programmēšanas valodām. Tas ir pastāvīgi izmantots lietojumprogrammās, kas iepriekš bija kodētas montāžas valodā. Tas ietver UNIX datoru operētājsistēmu. C ir arī tieši vai netieši ietekmējusi daudzas jaunākās programmēšanas valodas, piemēram, C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python un Unix C čaulas. Neskatoties uz visām šīm jaunajām valodām, C joprojām ir populāra programmēšanas valoda.
Sākotnēji C ++ sākās kā C papildinājums. Tā tika izstrādāta kā avota un saiknes savietojamība ar C. Tomēr tā pievienoja klases, virtuālās funkcijas, operatora pārslodzi, vairākus mantojumus, veidnes, izņēmuma apstrādi utt. pietiekami, lai to uzskatītu par programmēšanas valodu. Sākotnēji tas tika ratificēts 1998. gadā kā ISO / IEC 14882: 1998 sertificēta programmēšanas valoda. Šodien C ++ tagad parasti izmanto aparatūras projektēšanai.
C ir vispārējas nozīmes programmēšanas valoda, kas izmanto semikolu (;) kā izraksta terminatoru, kā arī cirtaini bikšturi ({}), lai grupētu paziņojumu blokus. Tajā ir iekārtas strukturētai programmēšanai, un tās dizains nodrošina konstrukcijas, kas var efektīvi attēlot tipiskas mašīnas instrukcijas. Tas arī nodrošina leksisko mainīgo apjomu un rekursiju, un tam ir statiska tipa sistēma, kas novērš daudzas neparedzētas darbības.
Tomēr, salīdzinot ar C + +, C ir daudz ierobežojumu. Tā kā C nav objektorientēts, tas neatbalsta OOPS koncepcijas. C neatbalsta funkciju un operatora pārslodzi. Tā nevar izmantot struktūras iekšējās funkcijas. Tā neatbalsta virtuālās funkcijas un atsauces mainīgos lielumus vai izņēmumu apstrādi. Tā arī neatbalsta atsauces mainīgos lielumus. Turklāt C arī neietver kapsulēšanu vai datu nodrošināšanu. Salīdzinājumam, C ++ atbalsta visas šīs funkcijas.
Abas valodas atšķiras arī atkarībā no adreses atmiņas funkcijām, ieejas izejas un GUI programmēšanas. Piemēram, C izmanto calloc (), malloc () un bezmaksas () funkcijas, lai piešķirtu un atdalītu atmiņu, bet C ++ izmanto jaunu un dzēš. C izmanto scanf () un printf () ievadei un izvadīšanai, bet C ++ izmanto cin >> un cout << operatorus. C atbalsta GTK rīku GUI programmēšanai, bet C ++ atbalsta Qt rīkus GUI programmēšanai. Vēl viena atšķirība ir tā, ka C pieprasa vienu deklarēt visus mainīgos lielumus programmas augšpusē, bet C + +, mainīgie var tikt deklarēti jebkurā programmas daļā.
Turklāt C + + parasti tiek uzskatīts par vieglāku mācīties, jo tas ir lietotājam draudzīgāks nekā C. C ++ ir arī daudzas papildu funkcijas, kas atvieglo kodēšanu, īpaši tiem, kas ir jauni C sistēmā. Tomēr daudzi apgalvo, ka tas patiesībā ir svarīgi. Abas valodas ir tik atšķirīgas, ka faktiski tās var būt divas dažādas valodas, kas ir neatkarīgas viena no otras. Viena lieta, kas jāpatur prātā, ir tas, ka C ir daudz strukturētāka nekā C + +, bet C + + tika veidota tā, lai tā būtu izteiktāka un abstrakta nekā C.
C un C ++ salīdzinājums:
C | C + + | |
Dibināta | Izstrādājis Dennis Ritchie AT&T Bell Labs laikā no 1969. līdz 1973. gadam. | Bjarne Stroustrup izstrādājis Bell Labs, sākot no 1979. gada. |
Avota kods | Brīvā formāta programmas pirmkods | Sākotnēji izstrādāts no C programmēšanas valodas |
Valoda | Procedūra orientēta valoda | Atbalsta gan procesuālās, gan objektu programmēšanas paradigmas; tāpēc to bieži sauc par hibrīda valodu. |
Pieeja | Seko augšupejošai pieejai. | Seko augšupējai pieejai. |
Attiecības | C ir C + + apakškopa. Tas nevar palaist C ++ kodu. | C + + ir C. C + + pārspīlējums. C ++ var palaist lielāko daļu C koda, bet C nevar palaist C ++ kodu. |
Braukt | Funkcija balstīta valoda | Objektu orientēta valoda |
Fokuss | Koncentrējas uz metodi vai procesu, nevis uz datiem. | Koncentrējas uz datiem, nevis uz metodi vai procedūru. |
Celtniecības klucīši | Funkcijas | Objekti |
Atslēgvārdi | Satur 32 atslēgvārdi | Satur 52 atslēgvārdus |
OOPS koncepcijas | Tā kā C valoda ir uz valodu orientēta procedūra, tā neatbalsta OOPS koncepcijas, piemēram, klasi, objektu, mantojumu, polimorfismu, datu slēpšanu utt. | Kā objektorientēta valoda, C ++ atbalsta klasi, objektu, datu slēpšanu, polimorfismu, mantojumu, abstrakciju utt. |
Funkcijas |
|
|
Atmiņas funkcijas | Atmiņas piešķiršanai un atdalīšanai izmanto calloc (), malloc () un bezmaksas () funkcijas. | Izmanto jaunus operatorus un dzēš tos pašus mērķus. |
Iekapsulēšana | Neatbalsta. Dati un funkcijas ir atsevišķas un brīvas vienības. | Atbalsta iekapsulēšanu. Dati un funkcijas ir iekapsulētas objekta veidā. Objektu klase nodrošina objekta struktūras plānu. |
Informācija slēpjas | C neatbalsta informācijas slēpšanu. Šeit dati ir brīvi, un tos var manipulēt ar ārējo kodu. | Kapsulēšana slēpj datus, lai nodrošinātu, ka datu struktūras un operatori tiek izmantoti kā paredzēts. |
Dati | Atbalsta iebūvētu un primitīvu datu tipus. Dati netiek nodrošināti objekta orientācijas dēļ | Atbalsta gan iebūvēto, gan lietotāja definēto datu tipu. Dati tiek nodrošināti (slēpti) C ++ |
Līmenis | Zema līmeņa valoda | Vidējā līmeņa valoda |
Ieejas izejas | “C” valoda izmanto scanf () un printf () ievadei un izvadīšanai. | “C + +” valoda ievada un izvadei izmanto operatorus cin >> un cout <<. |
Mainīgo lielumu deklarācija | C nepieciešams, lai deklarētu visus mainīgos lielumus programmas augšpusē. | C + +, mainīgie lielumi var tikt deklarēti jebkurā programmā pirms lietošanas. |
Daudzkārtēja deklarācija | Ir atļauta vairāku globālo mainīgo deklarācija. | Vairāki globālo mainīgo paziņojumi nav atļauti. |
Kartēšana | Kartēšana starp datiem un funkciju ir sarežģīta un sarežģīta. | Kartēšanu starp datiem un funkciju var izmantot, izmantojot "Objekti" |
GUI programmēšana | C atbalsta GTK rīku GUI programmēšanai | C ++ atbalsta Qt rīkus GUI programmēšanai |
Mantojums | C mantojums nav iespējams | Mantojums ir iespējams C + + |
Faila paplašinājums | Ir faila paplašinājums .c | Ir faila paplašinājums .cpp |
Noklusējuma galvenes fails | Noklusējuma galvenes fails, ko izmanto C valodā, ir stdio.h | Noklusējuma galvenes fails, ko izmanto C ++, ir iosteam.h |
Daži atšķirības starp C un C ++:
Piemēri | C | C + + |
Mainīga deklarācija | Tikai augšpusē: int i; (i = 10; i <10; i ++) | Programmā jebkur: par (int i = 10; i <10; i ++) |
Atmiņas piešķiršana | Malloc: int * x = malloc (izmērs (int)); int * x_array = malloc (izmērs (int) * 10); | Jauns: int * x = jauns int; int * x_array = jauns int [10]; |
Atbrīvojot atmiņu | Bezmaksas: bezmaksas (x); bezmaksas (x_array); | Dzēst: izdzēst x; izdzēst [] x_array; |