Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C++ (auch C++0x und C++11) ::  [gelöst]Wie implementiert ihr eure Klassen?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Unregistrierter





Beitrag 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
Beitrag 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





Beitrag 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
Beitrag 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
Beitrag cooky451 Mitglied 14:45:47 28.01.2012   Titel:              Zitieren

Alles in den Header klopppen weil zu viele Templates. Wahh ich will ein Modulsystem. :o)

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Unregistrierter





Beitrag 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
Beitrag 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
Beitrag phlox81 Moderator 19:26:54 28.01.2012   Titel:              Zitieren

In C++.

_________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | The Black Board | Code Node | Xing | Blog | Twitter
Unregistrierter





Beitrag Unregistrierter 19:43:54 28.01.2012   Titel:              Zitieren

phlox81 schrieb:
In C++.
Das beruhigt mich ;)
Kontrasubjekt
Mitglied

Benutzerprofil
Anmeldungsdatum: 30.08.2009
Beiträge: 133
Beitrag 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
Beitrag 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





Beitrag 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
Beitrag 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





Beitrag 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
Beitrag 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
Beitrag 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. :D

_________________
Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Unregistrierter





Beitrag 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
Beitrag 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





Beitrag Unregistrierter 18:31:16 29.01.2012   Titel:              Zitieren

Fängt nicht alles mit einem Gedanken an? ;)
C/C++ Forum :: C++ (auch C++0x und C++11) ::  [gelöst]Wie implementiert ihr eure Klassen?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.