Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

11

22.06.2009, 15:20

Das ist halt die "künstlerische Freiheit" des Programmierers. Der Code und Code-Style von 100 Entwicklern wird sich teils mehr oder weniger stark voneinander unterscheiden.

Ich bin der Meinung, dass für jede Klasse eine eigene .cpp- und .h-Datei verwendet werden sollte. Ist eine zweite Klasse ganz klein, kann diese sicher auch in eine bestehende Datei integriert werden. Es ist halt Geschmacks- und Ansichtssache.. Stell dir mal vor du hättest ein etwas umfangreicheres Projekt und würdest den Code jeder Form in eine .cpp und eine .h quätschen. Da blickt keiner mehr durch.

Ein weiterer Gesichtspunkt wäre auch die Modularisierung und Wiederverwendbarkeit deines Codes..
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

12

22.06.2009, 16:25

Also Trikkie, nur weil etwas nicht irgendwo geschrieben steht, heißt es nicht, dass es keine gängige Methode ist... (doppelte Verneinung ist übrigens toll...^^)

Ist schon irgendwie sinnvoll einige Sachen zu gruppieren, aber wenn man etwas schon als eigenständiges Objekt realisiert, sollte man es auch vom Rest abgrenzen, das macht das ganze übersichtlicher und kann Compilezeit sparen...

Aber das ist wie bei Code-Conventions... macht doch jeder anders

13

22.06.2009, 20:27

Zitat von »"TrikkieMikkie"«

Ist ja alles schön und gut. Beantworten kann mir die Frage aber keiner?
Gängig - Faustregel - Richtlinien...
Wo steht denn sowas?
Habe ich bei Stroustrup was verpasst?
Glaubst du nur Dinge, die irgendwo schriftlich festgelegt sind? Im C++-Standard wirst du sowas nicht finden. Wohl wird es aber Bücher geben, die auf diesen Punkt aufmerksam machen - auch wenn ich dir jetzt keine genaue Textstelle nennen kann.

Ich denke jedoch, du kannst uns soweit vertrauen, dass unsere Argumente zumindest nicht ganz aus der Luft gegriffen sind. Oder hältst du es nicht für plausibel, dass eine adäquate Aufteilung Vorteile hat?

14

22.06.2009, 20:58

Eigentlich wollte ich von Gandi nur wissen, wo er das her hat.
Schien mir nicht ganz schlüssig, erst wie ein Routinier einzuleiten ("es ist ja gängiger Stil..."), und dann solche Fragen zu stellen.
Und von euch anderen konnte es in der Folge auch keiner wirklich schlüssig begründen. ;)

Im Prinzip mache ich es auch nach dem Schema.
Nur, dass es dabei nicht immer bei einer Klasse bleibt.

Was den Glauben betrifft... Ich bin 34, "aus dem Gröbsten raus", und mittlerweile mit einer gewissen Gelassenheit gesegnet. :p
fka tm

15

22.06.2009, 21:13

Zitat von »"TrikkieMikkie"«

Und von euch anderen konnte es in der Folge auch keiner wirklich schlüssig begründen. ;)
Was gefällt dir an unseren Argumenten (weniger Abhängigkeiten, kürzere Kompilierzeit, mehr Modularisierung und dadurch gestiegene Übersichtlichkeit) nicht?

Zitat von »"TrikkieMikkie"«

Im Prinzip mache ich es auch nach dem Schema.
Nur, dass es dabei nicht immer bei einer Klasse bleibt.
Ich war ja auch nicht der Verfechter von immer strikt nur einer Klasse. Deshalb sprach ich auch von "Faustregel", so etwas zu pauschalisieren ist ohnehin schlecht. Aber andererseits willst du wieder klare Fakten. Dir kann mans irgendwie nicht recht machen... ;)

16

22.06.2009, 21:19

Zitat von »"Nexus"«

Dir kann mans irgendwie nicht recht machen... ;)

Doch kann man. :)
Bin immer lern- und wissbegierig, um meinen bescheidenen Horizont zu erweitern.
Und stichel ab und dann gerne... ;)
fka tm

Gandi

Frischling

  • »Gandi« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Bayern

Beruf: Elektrotechnikingenieur

  • Private Nachricht senden

17

22.06.2009, 21:49

Zitat

Eigentlich wollte ich von Gandi nur wissen, wo er das her hat.
Schien mir nicht ganz schlüssig, erst wie ein Routinier einzuleiten ("es ist ja gängiger Stil..."), und dann solche Fragen zu stellen.


Ich habs schon in diversen Tutorials gelesen dass man es so machen sollte und eigentlich auch noch nie irgend ein Projekt gesehen in dem es anders gewesen wäre, daher bin ich mal davon ausgegangen dass es gängiger Stil ist. Die Methode macht ja auch Sinn, ich wollte nur wissen ob meine Vorgehensweise, die .cpp-Dateien nachher in .h umzubenennen und einzubinden irgendwelche Nachteile hat.

Allerdings schein ich mir die kürzere Kompilierzeit nur einzubilden oder ich hatte noch nie so viele .cpp-Dateien, dass die Parse-Zeit für die Headerdateien durch den Vorteil, dass man unveränderten Code nicht rekompilieren muss, ausgeglichen wird.[/cpp]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

22.06.2009, 21:52

Zitat von »"Gandi"«

Die Methode macht ja auch Sinn, ich wollte nur wissen ob meine Vorgehensweise, die .cpp-Dateien nachher in .h umzubenennen und einzubinden irgendwelche Nachteile hat.


Theoretisch müsstest du die gar net umbenennen sondern könntest auch einfach #include "dein.cpp" schreiben ;)
Allerdings hat diese Methode natürlich die bereits erwähnten Nachteile (es wird immer alles kompilliert)...

Zitat von »"Gandi"«

Allerdings schein ich mir die kürzere Kompilierzeit nur einzubilden oder ich hatte noch nie so viele .cpp-Dateien, dass die Parse-Zeit für die Headerdateien durch den Vorteil, dass man unveränderten Code nicht rekompilieren muss, ausgeglichen wird.


vermutlich...

Diese Faustregel mit ein .h/.cpp pro Klasse kann man vielleicht als grobe Richtlinie für guten Stil sehen. Wie ernst das zu nehmen ist hängt imo vor allem davon ab in welchem Paradigma man sich gerade am ehesten befindet. Vor allem wenn man streng OOP programmiert würd ich sagen dass das gängie Praxis ist (reine OOP Sprachen, wie z.B. Java zwingen einen ja sogar auf Sprachebene dazu für jede Klasse (nested classes lassen wir hier mal außen vor) eine eigene Datei mit dem Namen der Klasse anzulegen). Wenn man Modular/Prozedural oder Generisch unterwegs ist siehts schon wieder ganz anders aus...

19

22.06.2009, 22:02

Gandi

Hast du "Minimale Neuerstellung aktivieren" eingeschaltet?
(Projekteigenschaften - C++ -> Codegenerierung)
fka tm

Werbeanzeige