Programmeren in C++/Inleiding: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
een paar stijl verbeterigen, het is een onduidelijk geschreven tekst
Sephiroth (overleg | bijdragen)
kGeen bewerkingssamenvatting
Regel 1:
{{Programmeren in C++}}
== Introductie ==
C++ is een uitbreiding (superset) van de [[Programmeren in C|programmeertaal C]]. C++ werd geïntroduceerd omdat C al een aantal jaren meeging en achterop raakte bij de mogelijkheden van modernere programmeertalen.
Regel 13 ⟶ 14:
Een eerste verschil met C is dat de zogenaamde header-bestanden geen extensie meer hebben:<br />
 
'''C'''
<b>C</b>
{{code
|Taal= C
|Titel=
|Code=
<source lang=c>
#include <stdio.h>
</source>}}
 
<b>'''C++</b>'''
{{code
|Taal= C++
|Titel=
|Code=
<source lang=cpp>
#include <iostream>
</source>}}
 
Een volgend verschil is dat er zogenaamde ''naamruimten'' (namespaces) 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:
 
{{code
|Taal= C++
|Titel=
|Code=
<source lang=cpp>
#include <iostream>
using namespace std;
</source>}}
De oude C-headers kunnen in C++ echter wel nog gebruikt worden.<br />
Veel standaard C-headers zijn geconverteerd naar C++.<br />
Regel 38 ⟶ 52:
 
Het C-programma "Hello World":
{{code
|Taal= C
|Titel=
|Code=
<source lang=c>
#include <stdio.h>
Regel 46 ⟶ 64:
printf("Hello World!\n");
}
</source>}}
Het C++-programma "Hello World":
{{code
<source lang=cpp>
|Taal= C++
|Titel=
|Code=<source lang=cpp>
#include <iostream>
using namespace std;
Regel 65 ⟶ 86:
return 0;
}
</source>}}
 
Een tweede versie van het "Hello World" programma maakt gebruik van een "Begroeter"-object, een instantie van de klasse "Begroeter":
 
{{code
<source lang=cpp>
|Taal= C++
|Titel=
|Code=<source lang=cpp>
// Gebruik de iostream header en de string header
#include <iostream>
Regel 110 ⟶ 134:
return 0;
}
</source>}}
 
Het Begroeter-object wordt gedefinieerd door het class- of het struct-keyword (class is nieuw
Regel 116 ⟶ 140:
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
geraadpleegd of gewijzigd kunnen worden.<br />
 
Voorbeelden:<br />
- Vanuit de main functie kan men de 'begroeting' string niet wijzigen of opvragen (adhv groeter.begroeting).<br />
-*Vanuit de main functie kan men de 'begroeting' string niet wijzigen of opvragen (adhv groeter.begroeting).
*Indien de zegHallo() lidfunctie, die nu in het "public" deel staat en dus publiek toegankelijk is (adhv groeter.zegHallo() ), verplaatst zou worden naar het "private" gedeelte, zou de oproep falen.<br />
 
In het "private" gedeelte zit enkel de begroetingsstring (C++ ondersteunt string objecten welke makkelijker te hanteren zijn dan de char * in C, char * is wel nog steeds bruikbaar). Deze begroetingsstring wordt ingesteld door
de defaultconstructor in het publieke gedeelte van de klasse. Een constructor is een lidfunctie
Regel 128 ⟶ 154:
overladen constructors beschikbaar zijn en aangeroepen worden. Een uitbreiding op de klasse zou
de volgende kunnen zijn:
{{code
 
|Taal= C++
|Titel=
|Code=
<source lang=cpp>
class Begroeter{
Regel 140 ⟶ 169:
};
</source>
}}
 
Hier definieren we een tweede constructor welke de begroeting wijzigt, wanneer we nu het
hoofdprogramma zouden wijzigen tot:
{{code
|Taal= C++
|Titel=
|Code=
<source lang=cpp>
int main(){
Regel 153 ⟶ 186:
return 0;
}
</source>}}
Dan roepen we de tweede constructor op die een string als argument neemt. De laatste
publieke functie in de klasse is de zegHallo() lidfunctie welke de begroeting uitschrijft
naar standaard uitvoer.
 
[[Categorie:Programmeren in C++/Pointers|Pointers >>Inleiding]]
[[categorie:Boeken in Wikibooks|Programmeren in C++]]
 
[[Programmeren in C++/Gelinkte lijst|Toegepaste pointers: gelinkte lijst >>]]
 
[[Categorie:C++|Cpp]]
[[categorie:Boeken in Wikibooks|C++]]
{{GFDL-oud}}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.