Programmeren in C++/Inleiding: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Nijdam (overleg | bijdragen)
aanpassingen
Regel 1:
== Introductie ==
C++ is een uitbreiding ([[superset]]) opvan de [[programmeertaal]] [[C]]. DitC++ werd gedaangeïntroduceerd omdat C al een aantal jaarjaren meeging en achterachterop begonraakte tebij rakende opmogelijkheden anderevan modernere programmeertalen.
DezeEen bodenvan veel meerdie mogelijkheden, een daarvan is [[object georienteerd-georiënteerd programeren]]. Dit is een van de belangrijkste verbeteringenvernieuwingen in C++.
C++ kan alles wat C ook kan, maar het heeft meer mogelijkheden.
 
De [[ontwerper]] van C++ is Bjarne Stroustrup. Hij werkte op dat moment voor AT&T. Zijn website is http://www.research.att.com/~bs/.
 
Terwijl C "functie-georienteerd" is, is C++ zgn. "object-georienteerd". Dit houdt in dat er in C++ voornamelijk objecten en klassen worden gebruikt, en in C alleen maar functies. Er kan in C++ echter wel met functies gewerkt worden, dus de oude code hoeft niet gelijk de prullenbak in,. C++ werd ontwikkeld met backward compatibility in het achterhoofd,; het resultaat is dus dat elk geldig C-programma (in principe) een geldig C++-programma is.
Een van de belangrijkste dingen is dat C++ zgn "Object-georienteerd" is, terwijl C "Functie-georienteerd" is.
Dit houdt in dat er in C++ voornamelijk objecten en klassen worden gebruikt, en in C alleen maar functies.
Er kan in C++ echter wel met functies gewerkt worden, dus de oude code hoeft niet gelijk de prullenbak in, C++ werd ontwikkeld met backward compatibility in het achterhoofd, het resultaat is dus dat elk
geldig C programma (in principe) een geldig C++ programma is.
 
== Veranderingen ==
We gaan er op dit moment vanuit dat je al een klein beetje ervaring met C hebt. Dit hoeft niet veel te zijn, maar het programma "Hello World" programma moet je bekend zijn.
 
=== Headers ===
Regel 27 ⟶ 23:
</pre>
 
Een volgendevolgend verschil is dat er zogenaamde ''naamruimten'' (namespacenamespaces) worden gebruikt,; dit om conflicten te voorkomen. De standaard header-bestanden gebruiken alle de namespace "std" (standard). Om deze namespace voor het gehele document te laten gelden, kun je "using namespace std;" gebruiken:
De standaard header-bestanden gebruiken allemaal de namespace "std" (standard). Om deze toe te passen op het gehele document kan je "using namespace std;" gebruiken:
<pre>
#include <iostream>
Regel 34 ⟶ 29:
</pre>
De oude C-headers kunnen in C++ echter wel nog gebruikt worden.<br />
Een heleboelVeel standaard C-headers zijn geconverteerd naar C++.<br />
Ze krijgen dan geen extensie meer, zettenhebben een c voor hun naam gekregen en gebruiken naamruimten.<br />
Bijvoorbeeld "stdio.h" wordt "cstdio".
 
=== Functies versus Objectenobjecten ===
Een van de grootste verschillen - zoniet het grootste verschil - tussen C en C++ is dat er objecten i.p.v. functies kunnen worden gebruikt.
Het klinkt moeilijker dan het is, kijk maar...
 
Het C-programma "Hello World" programma:
<pre>
#include <stdio.h>
Regel 52 ⟶ 47:
}
</pre>
Het C++-programma "Hello World" programma:
<pre>
#include <iostream>
Regel 61 ⟶ 56:
// In C++ krijgen functies een type mee, dit is meestal void of int.
int main()
{
// endl staat voor end line en doet dus hetzelfde als \n.
// Ditbetekenis betekent eigenlijkcode: Verplaatsverplaats naar cout: eerst "Hello World" en daarna endl.
// Coutcout plaatst de uitvoer vervolgens op het scherm.
 
cout << "Hello World" << endl;
 
// return 0;dit betekent : Programmaprogramma afgesloten zonder problemen
return 0;
}
</pre>
 
Een tweede versie van het "Hello World" programma maakt gebruik van een "begroeterBegroeter" -object, een instantie van de klasse "Begroeter":
 
<pre>
Regel 79 ⟶ 73:
#include <iostream>
#include <string>
using std::cout; // Wanneer we 'cout' of 'endl' gebruiken referenrefereren we
using std::endl; // naar deze uit de naamruimte 'std'
using std::string;
 
// Definitie van de begroeter klasse "Begroeter".
class Begroeter{
protected: // beschermde onderdelen, enkel in sommige gevallen toegankelijk van in de klasse zelf of van overal toegankelijk.
string begroeting;
 
private:
// Privaat toegankelijke onderdelen, enkel toegankelijk
// van in de klasse zelf.
string begroeting;
public:
Regel 101 ⟶ 95:
}
 
// De zegHallo lidfunctiememberfunction, deze uitvoert de begroeting uit.
void zegHallo(){
cout << begroeting << endl;
Regel 118 ⟶ 112:
</pre>
 
Het begroeter Begroeter-object wordt gedefinieerd door het class- of het struct -keyword (class is nieuw
tov C, en struct kan hier nu ook lidfunctiememberfunctions bevatten en is dus uitgebreid tegenover C). Zoals
opvalt is de klassedefinitie in twee gesplitst door de woorden "private" en "public", na private
komen alle lidfuncties en variabelen die eigen zijn aan de klasse en niet van buitenaf
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.