Ontwerpvoorbeeld guitarfx

Om dit voorbeeld te begrijpen heb je kennis nodig uit hoofstukken verderop, zoals object oriented design.

Benodigde files

De inhoud van de files is niet compleet. Enkele elementen die belangrijk zijn om het gebruik van header files, classes en inheritance duidelijk te maken dienen als voorbeeld.

Gebruik van header files

Welke .cpp file heeft welke .h file nodig? Dat zie je hier.
De links die ontbreken zijn die waarbij amplifier.h en tremolo.h een include doen van effect.h omdat de class Tremolo alles erft van de class Amplifier. Dat zie je in het volgende diagram.

Multiple inclusion

Zoals je hier ziet wordt effect.h in guitarfx.cpp twee keer naar binnen getrokken: beide keren via een omweg via amplifier.h en tremolo.h. De oplossing hiervoor vind je in C++ preprocessor

Compileren

Realiseer je dat elke compileer-actie een op zichzelf staand proces is. Compileren van guitarfx.cpp staat volledig los van amplifier.cpp, om een voorbeeld te noemen. De compiler vergeet na het compileren alle includes, defines en dergelijke.

Linken

Het linken van alle binaire (gecompileerde) files is één proces dat door de linker wordt uitgevoerd.