006
09.01.2003, 12:26 Uhr
~0xdeadbeef
Gast
|
In diesem Fall wars im wesentlichen Macht der Gewohnheit, aber es macht auch Sinn.
So, wies jetzt aussieht, kannst du den Code ohne große Probleme in einem anderen Projekt weiterverwenden, indem du in .cpp-Dateien, die die Ampelklasse brauchen, die ampel.h includest. Wenn du dagegen alles in eine Datei schreibst, wirft dir nachher der Linker nen Fehler raus, weil dieselbe Funktion zweimal definiert ist.
Theoretisch könntest du natürlich alles in eine grosse Datei schreiben, aber das wird hart unübersichtlich, und du musst höllisch aufpassen, was welche Klasse zu welchem Zeitpunkt schon wissen muss. Stell dir zum Beispiel was in der Art
C++: |
class B { A* a; } class A { B* b; }
|
vor. Das funktioniert so nicht, weil die Klasse B ja noch garnicht weiss, dass es eine Klasse A gibt. Der Code muss also so aussehen:
C++: |
class A; class B { A* a; } class A { B* b; }
|
Und jetzt stell dir das mal mit zwanzig Klassen vor, die wild untereinander hin- und herverweisen. Und mit templates hab ich noch nicht mal angefangen - da wirds nämlich erst richtig lustig. |