Nieuws — Lesstof — Pengo — Projecten — Console API — Links
Lesstof © 2002-2003, Joost Ronkes Agerbeek
In C++ staat al je programmacode in zogenaamde bronbestanden. Deze bestanden hebben meestal de extensie .cpp. Vaak zul je je broncode verdelen over meerdere bronbestanden. De compiler compileert elk bronbestand apart. Dat betekent dat wanneer de compiler Foo.cpp compileert, hij geen idee heeft welke functies er in Bar.cpp staan. Dit kunnen we de compiler vertellen met behulp van headerbestanden.
Een headerbestand bevat declaraties van datatypen, variabelen en functies die in een bronbestand gedefinieerd staan. Door een headerbestand te includen in een bronbestand, kan dat bronbestand gebruik maken van alle declaraties in dat headerbestand.
Stel je hebt twee bronbestanden: Foo.cpp en Bar.cpp. In Foo.cpp staat een functie Foo en in Bar.cpp staat een functie Bar.
void Foo() { // doe iets }
void Bar() { Foo(); // FOUT: deze functie staat in Foo.cpp; compiler kan 'm niet vinden }
Vanuit Bar.cpp roep je Foo aan. Tijdens het compileren van Bar.cpp weet de compiler echter niets van Foo.cpp; hij kunt dus de functie Foo niet. Door middel van een headerbestand vertellen we de compiler dat er een functie Foo bestaat (merk op, we hoeven de compiler niet te vertellen waar die functie staat).
void Foo();
Door middel van een #include-directive kunnen we de inhoud van Foo.h toevoegen aan Bar.cpp. Hierdoor vertellen we de compiler dat we de functie Foo in Bar.cpp willen gebruiken.
#include "Foo.h" void Bar() { Foo(); // GOED: wordt gedeclareerd in Foo.h }