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.