Verschil tussen C en C ++ met voorbeelden | Programmeertalen

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 en C ++ zijn twee verschillende computer-programmeertalen. C is oorspronkelijk ontwikkeld door Dennis Ritchie bij AT & T Bell Labs tussen 1969 en 1973. C ++ is een andere algemene programmeertaal. Het werd ontwikkeld vanuit de oorspronkelijke programmeertaal C. Het werd ontwikkeld door Bjarne Stroustrup in Bell Labs vanaf 1979. C ++ heette aanvankelijk C met klassen, omdat het was gebaseerd op C. Het werd in 1983 omgedoopt tot C ++.

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.

Bovendien ondersteunt C de functie NAMESPACE niet, terwijl C ++ dat wel doet. Een naamruimte is een definitieve regio die het mogelijk maakt om identifiers te groeperen (de namen van typen, functies, variabelen, enz.). Namespaces kunnen dan worden gebruikt om code in logische groepen te ordenen en om botsingen tussen namen te voorkomen. Dit is vooral handig wanneer de codebasis meerdere bibliotheken bevat, waardoor de code in het ideale geval de neiging heeft om botsingen te benoemen.

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

  • Ondersteunt geen functie en overbelasting van de operator.
  • Kan functies binnen structuren niet gebruiken
  • Ondersteunt geen virtuele functies en referentievariabelen
  • Ondersteunt geen uitzonderingsafhandeling
  • ondersteunt geen referentievariabelen
  • heeft geen namespace-functie
  • kan de hoofdfunctie () aanroepen via andere functies
  • Ondersteunt de functie en overbelasting van de operator.
  • Kan functies binnen structuren gebruiken
  • Ondersteunt virtuele functies en referentievariabelen.
  • Ondersteunt exception handling met try en catch block. Uitzonderingen worden gebruikt voor "harde" fouten die de code onjuist maken.
  • ondersteunt referentievariabelen
  • maakt gebruik van de functie NAMESPACE die naambotsingen vermijdt.
  • kan de hoofdfunctie () niet oproepen via andere 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;

Aanbevolen

Gerelateerde Artikelen

  • verschil tussen: Verschil tussen Ebook en Printed Book

    Verschil tussen Ebook en Printed Book

    Belangrijkste verschil: een gedrukt boek is in feite een set afgedrukte vellen papier die zijn samengevoegd en ingepakt in een beschermhoes. EBook staat voor elektronisch boek. Het is een elektronische versie van een conventioneel gedrukt boek. Een boek is een verzameling gedrukte artikelen die bij elkaar worden gehouden en deze verzameling is ingepakt in een omslag
  • verschil tussen: Verschil tussen aansprakelijkheid en schulden

    Verschil tussen aansprakelijkheid en schulden

    Belangrijkste verschil: Schuld is vergelijkbaar met verplichtingen. Beide verwijzen naar verplichtingen waarbij geld moet worden terugbetaald. In de meeste gevallen omvat de schuld alle verplichtingen, met name bij de berekening van de verhouding schulden / eigen vermogen. In bepaalde gevallen kan schuld echter alleen betrekking hebben op kortlopende en langlopende leningen en te betalen obligaties, en mogelijk opgelopen lonen en nutsvoorzieningen, te betalen inkomsten en andere verplichtingen
  • verschil tussen: Verschil tussen doel en doelstelling

    Verschil tussen doel en doelstelling

    Belangrijkste verschil: doel probeert te peilen naar de reden achter iets dat wordt gedaan. Doel definieert waarom de persoon iets doet dat hij aan het doen is, wat zijn redenering is achter het doen van een bepaald ding en wat hij van plan is te bereiken. Doel is eigenlijk een deel van het doel. De term doelstelling verwijst naar ingestelde taken of doelen die een persoon wil bereiken
  • verschil tussen: Verschil tussen Coarse en Course

    Verschil tussen Coarse en Course

    Belangrijkste verschil : de term 'grof' verwijst meestal naar een textuur, met name een harde of ruwe textuur. De grove textuur komt meestal van het feit dat het ding bestaat uit grote ruwe korrels of deeltjes. Overwegende dat de term 'cursus' kan verwijzen naar een route of richting van reizen, of kan verwijzen naar een route of richting van reizen, dat wil zeggen educatieve cursus
  • verschil tussen: Verschil tussen supermarkt en supermarkt

    Verschil tussen supermarkt en supermarkt

    Belangrijkste verschil: supermarkten zijn grote zelfbedieningsgroothandels die klanten een verscheidenheid aan voedingsmiddelen en huishoudelijke benodigdheden bieden. De goederen zijn ingedeeld in een indeling voor een georganiseerd pad, waarbij elk gangpad is genummerd of geëtiketteerd en alleen gelijksoortige goederen bij elkaar zijn geplaatst.
  • verschil tussen: Het verschil tussen stage en stage

    Het verschil tussen stage en stage

    Belangrijkste verschil: een stage is een trainingsprogramma voor een bediende of professionele carrière. Apprenticeship is een trainingsprogramma voor ambachtelijke of handelsbanen. Stage en stage zijn twee dingen die er vaak goed uitzien op een cv. Counselors op de universiteit suggereren vaak dat een persoon stage gaat lopen tijdens het semester of de zomervakantie, omdat het de student een betere kans geeft om hun CV te laten selecteren door een bedrijf.
  • verschil tussen: Verschil tussen Harry Potter en Lord of the Rings

    Verschil tussen Harry Potter en Lord of the Rings

    Belangrijk verschil: Harry Potter is geschreven door JK Rowling en werd voor het eerst gepubliceerd in 1994. Lord of the Rings is ouder en werd in 1954 uitgegeven door JRR Tolkien. Bovendien heeft Harry Potter zeven boeken in zijn serie, terwijl Lord of the Rings er slechts drie heeft. Ze hebben ook verschillende verhaallijnen en verhalen
  • verschil tussen: Het verschil tussen No en Never

    Het verschil tussen No en Never

    Belangrijk verschil: nee betekent nee, om precies te zijn is het een negatief antwoord op iets, wat aangeeft dat de persoon niet wil doen wat de persoon aangeeft. Nooit duidt iets aan dat nooit zal gebeuren, terwijl 'nee' aangeeft dat er op dit moment iets zal gebeuren, maar in de toekomst kan gebeuren
  • verschil tussen: Verschil tussen Spoof, Parodie en Satire

    Verschil tussen Spoof, Parodie en Satire

    Belangrijk verschil : het belangrijkste verschil tussen de termen is gebaseerd op hun schrijfstijl, waarbij een 'parodie' een literaire compositie is die het werk van een andere auteur op een humoristische manier nabootst en een 'satire' wordt gebruikt om een ​​punt te maken door mensen te bespotten of een voorwerp. Te

Editor'S Choice

Verschil tussen P-type en N-type halfgeleider

Belangrijkste verschil: het P-type en N-type zijn twee verschillende soorten halfgeleiders. Het P-type draagt ​​een positieve lading, terwijl het N-type een negatieve lading draagt. De ladingen zijn afhankelijk van de gatconcentratie en de elektronenconcentratie. De halfgeleider van het P-type heeft een grotere gatconcentratie, wat resulteert in de positieve lading. Ev