newbie-frage zu header und code
-
hi,
habe inzwischen einige c++ - programme geschrieben und finde die aufteilung der klassen in .h - und .cpp - files ziemlich lästig. habe es in einigen beispielen auch schon anders gesehen: deklaration und code in einem file, das dann z.b. die endung .cxx hat. das gefällt mir eigentlich besser, aber was sind die nachteile?danke schon mal
testalucida
-
Bist mir'n Vogel...wie siehts aus wenn du komplette Modelloader schreiben möchtest? Packste das dann auch alles in ein File, damit es am Ende 7 Milliarden Zeilen hat und du 70 Jahre runterscrollen musst?
-
Mir war das trennen am Anfang auch komisch, gewöhne dich aber gleich zu Anfang dran. Wenn du anfängst etwas größere Programme zu schreiben wirst du die dadurch erlangte Übersichtlichkeit zu schätzen wissen.
Also Augen zu und durch
-
Viel wichtiger als Übersichtlichkeit ist auch die Trennung aufgrund der modularen Programmierung. Im Header stehen die Klasse und die Deklarationen (Funktionen, Variablen), in der Implementationsdatei die Definitionen. Wenn nun in einer separaten Übersetzungseinheit die Klasse benötigt wird, kann man den Header einbinden. Wenn man nämlich Definitionen inkludiert, handelt man sich früher oder später Linkerfehler ein.
-
danke für die antworten.
für einen vogel halte ich mich eigtl. nicht, und einen rechner, mit dem man 70 jahre lang scrollen muss, um ans ende einer datei zu kommen, hatte ich vor 20 jahren auch mal - der tipp an waygener: wirf den 286er weg
übersichtlichkeit kann auch nicht der ultimative grund sein - in java und c# gibt's keine header-dateien, und die übersichtlichkeit wird durch die ide gewährleistet.
insofern scheint mir das einzige k.o.-kriterium das mit dem linker zu sein - klingt plausibel!
danke + ciao
testalucida
-
Naja, es geht halt hauptsächlich darum, alles übersichtlicher dazustellen...stell dir mal vor, dein Programm fasst so langsam die 3000 Zeilen, dann müsstest du, jedes mal wenn du etwas verbessern/ändern wolltest, die Zeile suchen...das ist Zeitraubend

-
Waygener schrieb:
Naja, es geht halt hauptsächlich darum, alles übersichtlicher dazustellen...stell dir mal vor, dein Programm fasst so langsam die 3000 Zeilen, dann müsstest du, jedes mal wenn du etwas verbessern/ändern wolltest, die Zeile suchen...das ist Zeitraubend

Nein, um das geht es hauptsächlich nicht.
Und die Argumente werden nicht besser, indem man jmd. anderen als Vogel bezeichnet.
Simon
-
Waygener schrieb:
Naja, es geht halt hauptsächlich darum, alles übersichtlicher dazustellen...
Wie bereits gesagt, geht es vielmehr darum, modular zu programmieren. Übersichtlichkeit ist zwar ein schöner Nebeneffekt, aber nicht der Grund dafür.
@ testlucida:
Modulare Programmierung ist übrigens ein sehr verbreitetes Konzept in C++, und wenn dich stört, dass es in anderen Programmiersprachen nicht so ist, solltest du vielleicht nicht C++ lernen. Da gibt es noch so einiges, was dir nicht gefallen wird, oder was in anderen Sprachen viel einfacher scheint. Mit 1:1-Vergleichen kommt man aber nicht unbedingt weit.theta schrieb:
Und die Argumente werden nicht besser, indem man jmd. anderen als Vogel bezeichnet.
Auch nicht, indem man masslos übertreibt und bei seiner Antwort bereits zuvor genannte Argumente einfach ignoriert, obwohl sie möglicherweise besser sind...