Belangrijk verschil: C en C ++ zijn twee verschillende computerprogrammeertalen. C ++ is ontwikkeld vanuit de programmeertaal C; ze zijn echter heel verschillend van aard. Het meest opvallende verschil is dat C een proceduregerichte taal is, terwijl C ++ zowel procedureel als objectgeoriënteerd programmeren ondersteunt, daarom wordt het vaak een hybride taal genoemd.

C is een van de oudste momenteel gebruikte programmeertalen en is een van de meest gebruikte programmeertalen. Het is constant gebruikt in applicaties die eerder in assembler waren gecodeerd. Dit omvat het UNIX-computerbesturingssysteem. C heeft ook direct of indirect veel van de latere programmeertalen beïnvloed, zoals C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python en Unix's C-schaal. Ondanks al deze nieuwe talen blijft C nog steeds een populaire programmeertaal.
C ++ is oorspronkelijk begonnen als een verbetering voor C. Het is ontworpen om bron-en-link compatibel te zijn met C. Het heeft echter klassen, virtuele functies, overbelasting door de operator, meerdere overerving, sjablonen, afhandeling van uitzonderingen, enz. Toegevoegd. Uiteindelijk heeft het ontwikkeld genoeg om op zich als een programmeertaal te worden beschouwd. Het werd oorspronkelijk in 1998 geratificeerd als ISO / IEC 14882: 1998 gecertificeerde programmeertaal. Tegenwoordig wordt C ++ tegenwoordig vaak gebruikt voor het ontwerpen van hardware.
C is een programmeertaal voor algemene doeleinden die puntkomma (;) gebruikt als een terminator voor woorden, evenals accolades ({}) voor het groeperen van blokken met instructies. Het heeft faciliteiten voor gestructureerd programmeren en het ontwerp biedt constructies die efficiënt kunnen worden toegewezen aan standaard machine-instructies. Het maakt ook lexicale variabel bereik en recursie mogelijk en heeft een statisch type systeem, dat veel onbedoelde bewerkingen voorkomt.
In vergelijking met C ++ heeft C echter tal van beperkingen. Omdat C niet objectgeoriënteerd is, ondersteunt het geen OOPS-concepten. C biedt geen ondersteuning voor overbelasting van de functie en de operator. Het kan geen functies binnen structuren gebruiken. Het ondersteunt geen virtuele functies en referentievariabelen, of afhandeling van uitzonderingen. Het ondersteunt ook geen referentievariabelen. Bovendien zorgt C ook niet voor inkapseling of gegevensbeveiliging. Ter vergelijking, C ++ ondersteunt al deze functies.

De twee talen verschillen ook op de manier waarop de adresgeheugenfuncties, invoer-uitvoer en GUI-programmering. C gebruikt bijvoorbeeld calloc (), malloc () en free () functies voor het toewijzen en de-alloceren van geheugen, terwijl C ++ nieuw en delete gebruikt. C gebruikt scanf () en printf () voor invoer en uitvoer, terwijl C ++ cin >> en cout << -operators gebruikt. C ondersteunt GTK-tool voor GUI-programmering, terwijl C ++ Qt-hulpmiddelen voor GUI-programmering ondersteunt. Een ander verschil is dat C vereist dat alle variabelen bovenaan het programma worden vermeld, terwijl in C ++ de variabelen overal in het programma kunnen worden gedeclareerd.
Bovendien wordt C ++ meestal als eenvoudiger te leren beschouwd, omdat het gebruiksvriendelijker is dan C. C ++ heeft ook talloze extra functies die codering eenvoudiger maken, vooral voor iemand die nog niet bekend is met het C-framework. Velen beweren echter dat het er echt toe doet. De twee talen verschillen zo veel, dat ze in feite twee verschillende talen onafhankelijk van elkaar kunnen zijn. Een ding om in gedachten te houden is dat C veel meer gestructureerd is dan C ++, terwijl C ++ ontworpen is om expressiever en abstracter te zijn dan C.
Vergelijking tussen C en C ++:
C | C ++ | |
Gesticht | Ontwikkeld door Dennis Ritchie bij AT & T Bell Labs tussen 1969 en 1973. | Ontwikkeld door Bjarne Stroustrup in Bell Labs vanaf 1979. |
Broncode | Vrije-formaat programmabroncode | Oorspronkelijk ontwikkeld vanuit de C-programmeertaal |
Taal | Procedure georiënteerde taal | Ondersteunt zowel procedurele als objectgeoriënteerde programmeerparadigma's; daarom wordt het vaak een hybride taal genoemd. |
Nadering | Volgt top-down benadering. | Volgt bottom-up benadering. |
verwantschap | C is een subset van C ++. Het kan geen C ++-code uitvoeren. | C ++ is een superset van C. C ++ kan de meeste C-code uitvoeren, terwijl C geen C ++ -code kan uitvoeren. |
Rijden | Functiegestuurde taal | Objectgestuurde taal |
Focus | Richt zich op methode of proces in plaats van gegevens. | Richt zich op gegevens in plaats van op methode of procedure. |
Bouw blokken | functies | Voorwerpen |
trefwoorden | Bevat 32 zoekwoorden | Bevat 52 zoekwoorden |
OOPS-concepten | Omdat 'C'-taal een proceduregerichte taal is, ondersteunt deze geen OOPS-concepten zoals klasse, object, overerving, polymorfisme, gegevensverbergen, enz. | Als objectgeoriënteerde taal ondersteunt C ++ klasse, object, gegevensverberging, polymorfisme, Overerving, abstractie, etc. |
functies |
|
|
Geheugen functies | Gebruikt de functies calloc (), malloc () en free () voor het toewijzen en de-alloceren van geheugen. | Gebruikt operators nieuw en verwijderen voor hetzelfde doel. |
inkapseling | Ondersteund niet. Gegevens en functies zijn afzonderlijke en vrije entiteiten. | Ondersteunt inkapseling. Gegevens en functies zijn samen ingekapseld in de vorm van een object. Objectklasse geeft een blauwdruk van de structuur van het object. |
Informatie verstopt | C biedt geen ondersteuning voor verborgen informatie. Hier zijn data vrije entiteiten en kunnen worden gemanipuleerd door externe code. | Encapsulation verbergt de gegevens om ervoor te zorgen dat datastructuren en operators worden gebruikt zoals bedoeld. |
Gegevens | Ondersteunt ingebouwde en primitieve gegevenstypen. Gegevens zijn niet beveiligd vanwege niet-objectgeoriënteerd | Ondersteunt zowel ingebouwde als gebruikersdefinitieve gegevenstypes. Gegevens zijn beveiligd (verborgen) in C ++ |
Niveau | Taal op laag niveau | Middelbare taal |
Invoer uitvoer | 'C'-taal gebruikt scanf () en printf () voor invoer en uitvoer. | 'C ++' taal gebruikt cin >> en cout << operatoren voor invoer en uitvoer. |
Declaration of Variables | C vereist dat alle variabelen bovenaan het programma worden vermeld. | In C ++ kunnen de variabelen voor gebruik overal in het programma worden gedeclareerd. |
Meervoudige verklaring | Meervoudige verklaring van globale variabelen is toegestaan. | Meervoudige verklaring van globale variabelen is niet toegestaan. |
In kaart brengen | Mapping tussen Data en Function is moeilijk en gecompliceerd. | Mapping tussen Data en Function kan worden gebruikt met behulp van "Objects" |
GUI-programmering | C ondersteunt GTK-tool voor GUI-programmering | C ++ ondersteunt Qt-hulpmiddelen voor GUI-programmering |
Erfenis | Overname is niet mogelijk in C | Overerving is mogelijk in C ++ |
Bestandsextensie | Heeft bestandsextensie .c | Heeft bestandsextensie .cpp |
Standaard header-bestand | Het standaard header-bestand dat wordt gebruikt in C-taal is stdio.h | Het standaard header-bestand dat wordt gebruikt in C ++ is iosteam.h |
Enkele voorbeelden van verschillen tussen C en C ++:
Voorbeelden | C | C ++ |
Variabele verklaring | Alleen bovenaan: int i; voor (i = 10; i <10; i ++) | Waar dan ook in het programma: voor (int i = 10; i <10; i ++) |
Geheugen toewijzing | malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Nieuwe: int * x = nieuwe int; int * x_array = nieuwe int [10]; |
Geheugen vrijgeven | Gratis: gratis (x); gratis (x_array); | Verwijderen: verwijder x; verwijder [] x_array; |