Vielen, vielen Dank Leute!
Mit #ifndef, #define und #endif hab ich es jetzt hinbekommen, nur leider verstehe ich noch nicht ganz, was ich da getan habe...
"Prüfe" ich sozusagen, ob eine header-Info irgendwo gedoppelt auftaucht? Und wenn ja, wieso funktioniert das? Ich definiere doch eigentlich "nur" eine Konstante, die ähnlich heißt wie die Basisklasse. Woher weiß nun der Compiler, was er tun soll?
@Inspire: Hab die Stelle im Werk gefunden! Doch leider schreibt Kalista auch nur (sinngemäß): wird so gemacht, um Mehrfachdeklarationen vorzubeugen...
Den Compiler interessiert das ganze gar nicht. Das findet alles im Präprozessor statt. Der prüft diese # - Sachen. Und löst auch die Makros auf, die man definiert. Du sagst dem Präprozessor eigentlich nur, dass er diese Datei schon einmal geöffnet hatte und er den Code übersprigen soll, da sonst Mehrfachdeklarationen auftauchen.
Der Compiler bekommt dann das zu sehen, was den Präprozessor verlässt.
Unter danderem lässt sich mit dem Präprozessor Metaprogrammierung durchführen, ähnlich wie mit Templates.