006
16.02.2006, 09:02 Uhr
ao
(Operator)
|
Zitat von KaraHead: |
Bennen deine Unbenannt1.cpp in Unbenannt1.h um und ändere nach #include "Unbenannt1.h" .
|
Das ist Unsinn, es ist piepegal, wie die Datei heißt.
Es ist nur in vielen Fällen sinnvoll, die Deklarationen (Prototypen) in Header zu packen und zu inkludieren und die Definitionen (Funktionskörper) in eigene "Übersetzungseinheiten" zu stecken, getrennt zu kompilieren und erst am Schluss alles zusammenzubinden (Linken)
Sinnvoll deswegen, weil man damit große Projekte in kleinere Teile zerlegen und diese von mehreren Entwicklern parallel bearbeiten lassen kann, und weil man, wenn man es geschickt anfängt, fertig übersetzte, sofort wiederverwendbare Objectcode-Bibliotheken erhält. Man spart sich das Immer-wieder-Übersetzen von längst fertigem Quellcode.
Es gibt aber keinen Zwang, das so zu machen, man kann genausogut dreißig große C-Dateien schreiben, alle zusammen in einer main.c inkludieren und am Stück durch den Compiler jagen. Die Compile-Zeit nimmt zwar erheblich zu, und man kriegt möglicherweise Reihenfolge-Probleme, die man mit Vorwärtsdeklarationen lösen muss, also kommt man bei realen Projekten ganz ohne Header wohl nicht aus. Aber technisch geht das.
In C++-Klassenbibliotheken ist es auch üblich, bei kleineren oder sehr elementaren Klassen die Implementierung direkt in die Klassendefinition zu schreiben, so dass die Klasse inklusive Code in einem .h-File liegt und die Regel "keinen Code inkludieren" hier schon aufgeweicht wird.
Und spätestens bei Templates geht es gar nicht mehr anders.
Gruß, ao |