Hovedforskel: C og C ++ er to forskellige programmeringssprog. C ++ blev udviklet fra C programmeringssprog; men de er ganske forskellige i naturen. Den mest oplagte forskel er, at C er et procedureorienteret sprog, mens C ++ understøtter både proceduremæssig og objektorienteret programmering, derfor kaldes det ofte et hybrid sprog.

C er et af de ældste programmeringssprog, der anvendes i øjeblikket og er et af de mest anvendte programmeringssprog. Det har været konstant anvendt i applikationer, der tidligere havde kodet i samlingssprog. Dette omfatter UNIX computerens operativsystem. C har også direkte eller indirekte påvirket mange af de senere programmeringssprog, såsom C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python og Unix C-shell. På trods af alle disse nye sprog er C stadig et populært programmeringssprog.
C ++ startede oprindeligt som et ekstraudstyr til C. Det var designet til at være kilde-og-link kompatibelt med C. Det tilføjede dog klasser, virtuelle funktioner, overbelastning af operatør, multipel arv, skabeloner, undtagelseshåndtering osv. Endelig udviklede den nok til at blive betragtet som et programmeringssprog i sig selv. Det blev oprindeligt ratificeret i 1998 som ISO / IEC 14882: 1998 certificeret programmeringssprog. I dag er C ++ nu almindeligt anvendt til hardware design.
C er et generel programmeringssprog, der bruger semikolon (;) som udsagnsterminator, såvel som krøllede braces ({}) til gruppering af blokker af udsagn. Det har faciliteter til struktureret programmering og dets design giver konstruktioner, der kan kortlægge effektivt til typiske maskininstruktioner. Det tillader også leksikalsk variabel rækkevidde og rekursion og har et statisk type system, der forhindrer mange utilsigtede operationer.
Men i forhold til C ++ har C mange begrænsninger. Da C ikke er objektorienteret, understøtter den ikke OOPS-koncepter. C understøtter ikke funktion og operatør overbelastning. Det kan ikke bruge funktioner inden for strukturer. Den understøtter ikke virtuelle funktioner og referencevariabler eller undtagelseshåndtering. Det understøtter heller ikke referencevariabler. Desuden er C heller ikke indkapsling eller datasikring. Til sammenligning understøtter C ++ alle disse funktioner.

De to sprog er også forskellige på den måde, adresseminnet fungerer, input-output og GUI programmering. C bruger f.eks. Calloc (), malloc () og gratis () funktioner til allokering og afallokering af hukommelse, mens C ++ udnytter nyt og sletter. C bruger scanf () og printf () til input og output, mens C ++ bruger cin >> og cout << operatører. C understøtter GTK værktøj til GUI programmering, mens C ++ understøtter Qt værktøjer til GUI programmering. En anden forskel er, at C kræver en at erklære alle variablerne øverst i programmet, mens i C ++ kan variablerne erklæres hvor som helst i programmet.
Desuden anses C ++ normalt for at være lettere at lære, da det er mere brugervenligt end C. C ++ har også mange flere funktioner, der letter kodningen, især for nogen der er ny på C-rammen. Men mange hævder, at det faktisk betyder noget. De to sprog adskiller sig så meget, at de faktisk kan være to forskellige sprog uafhængige af hinanden. En ting at huske på er, at C er meget mere struktureret end C ++, mens C ++ er designet til at være mere ekspressiv og abstrakt end C.
Sammenligning mellem C og C ++:
C | C ++ | |
Grundlagt | Udviklet af Dennis Ritchie hos AT & T Bell Labs mellem 1969 og 1973. | Udviklet af Bjarne Stroustrup på Bell Labs startende i 1979. |
Kildekode | Free-format program kildekode | Oprindeligt udviklet fra C programmeringssprog |
Sprog | Procedure Orienteret sprog | Understøtter både proceduremæssige og objektorienterede programmeringsparadigmer; derfor kaldes det ofte et hybrid sprog. |
Nærme sig | Følger top-down tilgang. | Følger bottom up tilgang. |
forholdet | C er en delmængde af C ++. Det kan ikke køre C ++ kode. | C ++ er et supersæt af C. C ++ kan køre det meste af C-kode, mens C ikke kan køre C ++-kode. |
Køre | Funktionsdrevet sprog | Objektdrevet sprog |
Fokus | Fokuserer på metode eller proces i stedet for data. | Fokuserer på data i stedet for metode eller procedure. |
Byggesten | Funktioner | objekter |
nøgleord | Indeholder 32 søgeord | Indeholder 52 nøgleord |
OOPS Concepts | Som "C" -sprog er procedurorienteret sprog, understøtter det ikke OOPS-koncepter som klasse, objekt, arv, polymorfisme, data gemmer osv. | Som et objektorienteret sprog understøtter C ++ klasse, objekt, data gemmer, polymorfisme, arv, abstraktion mv. |
Funktioner |
|
|
Hukommelsesfunktioner | Bruger calloc (), malloc () og gratis () funktioner til allokering og afdeling af hukommelse. | Bruger operatører ny og slettes til samme formål. |
Indkapsling | Støtter ikke. Data og funktioner er separate og frie enheder. | Understøtter indkapsling. Data og funktioner er indkapslet sammen i form af en genstand. Objektklasse giver en tegning af objektets struktur. |
Information skjuler | C understøtter ikke oplysninger, der gemmer sig. Her er data gratis enheder og kan manipuleres af udenfor kode. | Indkapsling skjuler dataene for at sikre, at datastrukturer og operatører anvendes som beregnet. |
Data | Understøtter indbyggede og primitive datatyper. Data er ikke sikret på grund af ikke-objektorienteret | Understøtter både indbygget og brugerdefineret datatyper. Data er sikret (skjult) i C ++ |
Niveau | Lavt sprog | Mellemniveau sprog |
Input-output | 'C' sprog bruger scanf () og printf () til input og output. | 'C ++' sprog bruger cin >> og cout << operatører til input og output. |
Erklæring om variabler | C kræver en at erklære alle variablerne øverst i programmet. | I C ++ kan variablerne erklæres hvor som helst i programmet før brug. |
Flere erklæringer | Flere erklæringer af globale variabler er tilladt. | Flere erklæringer af globale variabler er ikke tilladt. |
Kortlægning | Kortlægning mellem data og funktion er vanskelig og kompliceret. | Kortlægning mellem data og funktion kan bruges ved hjælp af "objekter" |
GUI programmering | C understøtter GTK værktøj til GUI programmering | C ++ understøtter Qt-værktøjer til GUI programmering |
Arv | Arv er ikke mulig i C | Arv er mulig i C ++ |
Filforlængelse | Har filtypenavn .c | Har filtypenavn .cpp |
Standard header-fil | Standard header filen, der anvendes i C sprog er stdio.h | Standard header-filen, der bruges i C ++, er iosteam.h |
Nogle eksempler på forskel mellem C og C ++:
eksempler | C | C ++ |
Variabel angivelse | Kun øverst: int jeg; for (i = 10; i <10; i ++) | Overalt i programmet: for (inti = 10; i <10; i ++) |
Hukommelsesallokering | malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Ny: int * x = new int; int * x_array = new int [10]; |
Udgivelse af hukommelse | Ledig: fri (x); fri (x_array); | Slet: slet x; slet [] x_array; |