| Autor |
Nachricht |
Unregistrierter
|
Unregistrierter
14:10:11 28.01.2012 Titel: |
[gelöst]Wie implementiert ihr eure Klassen? |
Zitieren |
Hallo,
ich schreibe meine Klassen derzeit meist einzeln in der Datei wo auch die Einstiegsfunktion main liegt. Erst wenn ich der Meinung bin die Klasse funktioniert, lege ich zwei neue Dateien an und trenne die Klasse in Header- und Implementierungsdatei auf.
Wie macht ihr das, vielleicht erst Header und dann implementieren in der cpp-Datei, oder auch erst einen Prototypen und später trennen? |
Zuletzt bearbeitet von Unregistrierter am 12:19:58 29.01.2012, insgesamt 1-mal bearbeitet |
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
14:30:13 28.01.2012 Titel: |
|
Zitieren |
Gleich trennen, wenn ich später sowieso vorhabe, dies zu tun. Welchen Vorteil siehst du in deiner Vorgehensweise? |
|
|
|
 |
Unregistrierter
|
Unregistrierter
14:35:52 28.01.2012 Titel: |
|
Zitieren |
Hmm, gute Frage, eigentlich nur weil ich nicht bei jeder Methode zweimal die Funktionssignatur schreiben muss und dass ich nicht ständig zwischen Header/Source wechseln muss. Natürlich ist unter dem Strich meine Methode arbeitsintensiver, aber ich habe diese ständige Wechseln der beiden Dateien nicht, was ich sehr entspannend finde. Kurz, die Gründe sind sehr stark subjektiver Natur. |
|
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
14:45:38 28.01.2012 Titel: |
|
Zitieren |
Geheimtipp: Besorg dir mal einen Bildschirm, auf dem man auch mehrere Dateien gleichzeitig offen und im Blick haben kann. |
|
|
|
 |
cooky451
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 4839
|
cooky451 Mitglied
14:45:47 28.01.2012 Titel: |
|
Zitieren |
Alles in den Header klopppen weil zu viele Templates. Wahh ich will ein Modulsystem. |
_________________ Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
|
|
 |
Unregistrierter
|
Unregistrierter
14:54:26 28.01.2012 Titel: |
|
Zitieren |
| SeppJ schrieb: | | Geheimtipp: Besorg dir mal einen Bildschirm, auf dem man auch mehrere Dateien gleichzeitig offen und im Blick haben kann. | Ja, da geht schon mit zwei Quelldateien nebeneinander, finde es dennoch umständlich. Vielleicht gewöhnt man sich aber auch mit der Zeit daran. |
|
|
|
 |
Mechanics
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 432
|
Mechanics Mitglied
17:37:32 28.01.2012 Titel: |
|
Zitieren |
Gleich trennen. Wir haben auch Coding Rules in der Firma. Und mit main hat das eh nichts zu tun, weil wir mehrere 10 000 Klassen und Dateien haben
Das mit der Trennung in Header und Implementierung kann beim Programmieren etwas umständlich sein, aber ich hab mich schon lang dran gewöhnt und nehms lang nicht mehr wahr. Und ich habe sowieso dutzende Dateien gleichzeitig offen, wo ich reinschauen muss, macht also eh nicht so viel aus. |
|
|
|
 |
phlox81
Moderator
Benutzerprofil
Anmeldungsdatum: 21.04.2001
Beiträge: 7208
|
phlox81 Moderator
19:26:54 28.01.2012 Titel: |
|
Zitieren |
|
 |
Unregistrierter
|
Unregistrierter
19:43:54 28.01.2012 Titel: |
|
Zitieren |
Das beruhigt mich |
|
|
|
 |
Kontrasubjekt
Mitglied
Benutzerprofil
Anmeldungsdatum: 30.08.2009
Beiträge: 133
|
Kontrasubjekt Mitglied
20:12:05 28.01.2012 Titel: |
|
Zitieren |
wenn ich ein klares design habe dann gleich neue datei.
wenn ich aber Freiheiten habe, bevorzuge ich weniger theorie. Dann mach ich einen sketch in einer bestehenden Datei, implementiere ein paar Teile, und wenn das weiterhin ins Konzept passt nehm ich das in eine separate Datei auf. Oft weiß ich von Anfang an dass eine Klasse im Projekt gebraucht wird, dann mach ich auch gleich ne neue Datei. |
Zuletzt bearbeitet von Kontrasubjekt am 20:13:13 28.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Dobi
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.03.2006
Beiträge: 350
|
Dobi Mitglied
23:26:31 28.01.2012 Titel: |
|
Zitieren |
| justchris schrieb: | | SeppJ schrieb: | | Geheimtipp: Besorg dir mal einen Bildschirm, auf dem man auch mehrere Dateien gleichzeitig offen und im Blick haben kann. | Ja, da geht schon mit zwei Quelldateien nebeneinander, finde es dennoch umständlich. Vielleicht gewöhnt man sich aber auch mit der Zeit daran. |
Je nach IDE kannst du ja auch mit strg+tab oder so zwischen den sourcen rumwechseln. Sollte eigentlich schneller gehen als ständig hoch und runter zu scrollen. |
|
|
|
 |
Unregistrierter
|
Unregistrierter
12:19:35 29.01.2012 Titel: |
|
Zitieren |
Klar geht das alles irgendwie entweder durch Platz auf dem Bildschirm oder Header/Source-Switch in den IDEs oder auch VIM, das ist ja alles nicht das Problem. Mich hat ja auch nur interessiert wie viele Leute, wenn sie mal was ausprobieren, wirklich gleich in Header und Source auftrennen.
Ich habe mir jetzt halt beim Lernen angewöhnt, mich nur auf mein Problem zu konzentrieren und da muss ich mir nicht noch mehr Arbeit machen als nötig. Wenn ich dann was wirklich übernehme habe ich halt den Nachteil daraus dann erst einmal den Split zu machen.
Das mag sich auch alles ändern wenn ich wirklich mal was "sinnvolles" entwickle und weiß wie die Klassen ungefähr aussehen werden.
Ich denke hier kann auch geschlossen werden, den erwünschten Überblick, wie es andere machen, habe ich bekommen. |
|
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13604
|
SeppJ Moderator
14:34:45 29.01.2012 Titel: |
|
Zitieren |
Die Frage ist, was meinst du mit ausprobieren? Wenn ich ein Miniprogramm schreibe oder ein Beispielprogramm hier für's Forum, welches hinterher <300 Zeilen hat, dann teile ich beim Schreiben nicht auf. Aber hinterher auch nicht. Dann bleibt das alles in einer Datei. Und dann werden in der Regel auch alle Methoden inline in der Klassendefinition definiert.
Wenn hingegen weiß, dass es länger wird, dann wird gleich konsequent aufgeteilt.
Erfahrung (und es braucht nicht viel davon) hilft mir, im Voraus mit praktisch 100% Sicherheit zu sagen, wie lang und komplex es werden wird. |
|
|
|
 |
Unregistrierter
|
Unregistrierter
16:02:01 29.01.2012 Titel: |
|
Zitieren |
Also kann ich zusammenfassend sagen, viele trennen beim probieren nicht, aber sie trennen gleich wenn sie wissen dass die Klasse bestand haben wird. |
|
|
|
 |
314159265358979
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4623
|
314159265358979 Mitglied
16:14:29 29.01.2012 Titel: |
|
Zitieren |
Ich schreibe grundsätzlich erstmal alles in einen Header und trenne danach auf. Finde es übersichtlicher, beim schreiben des Codes alles auf einen Blick zu haben und nicht immer an 2 Stellen ändern zu müssen, aber wenn ich den Code nach einem Monat oder so sehe, interessiert mich nur noch das Interface. |
|
|
|
 |
cooky451
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 4839
|
cooky451 Mitglied
16:28:58 29.01.2012 Titel: |
|
Zitieren |
C++ braucht einfach ein Modulsystem. Die Header/Implementierungsdateien haben für C gut funktioniert, aber mit Klassen wird es schon nervig. Mit Templates ist es einfach nicht mehr zu halten, die Konzepte widersprechen sich.
Toll wäre ein System, bei dem man auch genau spezifizieren kann, was nach außen sichtbar ist und was nicht. Aber so eine große Änderung dauert wahrscheinlich ewig. Vielleicht ist es ja auch Zeit für eine neue Sprache, aber warum haben die ganzen neuen Sprachen die aus dem Boden schießen so eine bescheuerte Syntax? Ich will doch nur C++ mit ein paar Bugfixes, und schon bin ich wunschlos glücklich. |
_________________ Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
|
|
 |
Unregistrierter
|
Unregistrierter
17:37:55 29.01.2012 Titel: |
|
Zitieren |
Hmm, vielleicht gibt es ein optionales Modulsystem in einer der nächsten Standards, wer weiß? Das ist aber ein ganz anderes Thema, vielleicht lohnt sich ja ein neuer Thread dafür? |
|
|
|
 |
cooky451
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 4839
|
cooky451 Mitglied
17:39:50 29.01.2012 Titel: |
|
Zitieren |
| justchris schrieb: | | Hmm, vielleicht gibt es ein optionales Modulsystem in einer der nächsten Standards, wer weiß? Das ist aber ein ganz anderes Thema, vielleicht lohnt sich ja ein neuer Thread dafür? | Ne, das würde lohnen wenn wir etwas daran ändern könnte. |
_________________ Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
|
|
 |
Unregistrierter
|
Unregistrierter
18:31:16 29.01.2012 Titel: |
|
Zitieren |
Fängt nicht alles mit einem Gedanken an? |
|
|
|
 |