C++ Schreib-still
-
Ich hab mal nur so ne frage aus neugier und zwar wie wirkt auf euch mein Schreib still? Ist er übersichtlich, gut lessbar usw... Mich würd mal eure Meinung interesieren
. Also so hier sieht bei mir ein Projekt ohne Inhalt von anfang an aus^^...Also:
Main.cpp
// Main.cpp // C++ Header... #include <iostream> //Eigene Header... #include "Klasse.hpp" using namespace std; int main() { // Code... }Klasse.hpp
// Klasse.hpp #ifndef _KLASSE_HPP_ #define _KLASSE_HPP_ // C++ Header // Eigene Header // Makros... class Klasse { private: // Eigenschaften... public: // Methoden... }; #endif // Notizen...Klasse.cpp
// Klasse.cpp // C++ Header. // Header wo die Prototypen sich befinden. #include "Klasse.hpp" // Eigene Header. using namespace std; //----------> Konstruktoren <----------// //----------> Destruktoren <----------// //----------> Getter <----------// //----------> Inserter <----------// //----------> Löscher <----------// //----------> Operatoren <----------// //----------> Prüfer <----------// //----------> Setter <----------// //----------> Andere <----------// //---------->> ENDE <<----------//Wie findet ihr das?
Mfg Wikinger75!
-
Ein was stört micht. NIEMALS in Headerdateien ein
using namespace std;.Ansonsten schön Kommentiert, übersichtlich, gefällt mir.
-
Firefighter schrieb:
Ein was stört micht. NIEMALS in Headerdateien ein
using namespace std;.Ansonsten schön Kommentiert, übersichtlich, gefällt mir.Hat er ja auch nicht..

Ob es wirklich gut ist sieht man eigentlich erst, wenn man viel Code hat, aber ich denke, dass das kein schlechter Ansatz ist..
EDIT:
Doch was. Fang keine Namen mit einem Unterstrich an. Die sind für dem Compiler reserviert.
-
Ahh du hast recht ich hab mich verlesen. Sorry Falsch von mir
Danke Drakon
-
Wikinger75 schrieb:
//----------> Destruktoren <----------//Wie findet ihr das?

-
Wikinger75 schrieb:
Wie findet ihr das?
ist unfug.
generell nett ist es, die konstruktoren, zuweisungsoperatoren destruktoren beisammen stehen zu haben, und zwar als erste publicsachen. und gleichartige sachen auch zusammen. das war's aber dann auch.
-
@Wikinger75,
Ich gratuliere, du hast gerade die Büchse der Pandora geöffnet. C++ Schreibstil ist komplett umstritten, jeder haltet sein Design für das einzige und Beste und die anderen für nicht so gut oder gar schlecht
Es ist ja auch sehr subjektiv. Hauptsache es sollte dir gefallen, du sollst damit klar kommen, es übersichtlich finden und auch den Code in einem Jahr mit dieser Beschriftung noch lesen und verstehen können. Wenn das auch noch allenfalls deine Kollegen und andere Mitarbeiter können, dann noch besser. Wobei allerdings bei Projekten sollte man meistens einen allgemeinen Standard für den Schreibstil einführen
Was ich zu deinem Stil sagen würde? Jojo, ist in Ordnung, meiner ist besser :p
Und ich werde meinen jetzt nicht präsentieren, das führt zu nichts.Grüssli
-
Ich gratuliere, du hast gerade die Büchse der Pandora geöffnet.
Hab ich doch gern gemacht^^.
Was ich zu deinem Stil sagen würde? Jojo, ist in Ordnung, meiner ist besser :p
Und ich werde meinen jetzt nicht präsentieren, das führt zu nichts.Dazu sag ich jetzt nur mal lol^^
EDIT:
Doch was. Fang keine Namen mit einem Unterstrich an. Die sind für dem Compiler reserviert.Danke für den Tip^^
@thema
Danke für euer antworten Leuts.
-
Ich persöhnlich würde die Klasse so schreiben :
class Class_Name { private: //Eigenschaften public: //Methoden }; //statt class Class_Name { private: //Eigenschaften public: //Methoden };
-
@Wikinger
Zeig mal ein wenig mehr Code her. Bei dem wenigen was da steht is' ja ziemlich egal wie man's macht.Und achte ein wenig mehr auf die Rechtschreibung:
Schreib still -> Schreibstil
lessbar -> lesbar
interesieren -> interessieren
Und natürlich Frage, Neugier, Anfang alles gross.
-
Getter und Setter zusammen
-
Da du diese Frage stellst sind bei dir Getter und Setter sicher sowas wie im folgenden Beispiel oder?
class Sample { int attribute; int getAttribute() const { return attribute; } void setAttribute( int attrib ) { attribute = attrib; } };Sowas mache ich inline, also direkt in der Klassendefinition. Ansonsten finde ich die Worte Getter und Setter ungeeignet da sie irreführend sind. Man möchte das Modell das eine Klasse modelliert manipulieren und nicht die Implementierung. Daher gibt es bei mir nur drei Kategorien: public interface, protected interface und private interface.
Implementierungsdetails versuche ich so weit wie möglich zu kapseln, das heißt im Idealfall muss ich nur ein paar private Methoden ändern. Man sollte allerdings nicht vergessen, dass die Implementierung für den Anwender durchaus wichtig sein kann was Laufzeitverhalten angeht, zum Debuggen ist es schön den Quellcode zu haben, etc.
-
Vorschlag:
Erst die public-Sachen, dann private... Den Benutzer kann ja nur das public interessieren
-
Aquae schrieb:
Erst die public-Sachen, dann private... Den Benutzer kann ja nur das public interessieren
Interessant, ich mache immer privat zuerst weil den Leser des Source Codes kann ja nur die interna interessieren - das public interface steht ja in der doku

-
Shade Of Mine schrieb:
Aquae schrieb:
Erst die public-Sachen, dann private... Den Benutzer kann ja nur das public interessieren
Interessant, ich mache immer privat zuerst weil den Leser des Source Codes kann ja nur die interna interessieren - das public interface steht ja in der doku

Interessant, bei mir steht private am Schluss, weil das interessiert garantiert niemanden, denn da steht nur ein KlassePrivate d;*

Kommentare ala "Konstruktoren", "Destruktor", "Public Methoden" lass ich weg. Denn mit der Dokumentation der Methoden gehen diese Kommentare eh unter/machen den Header nicht übersichtlicher

Wichtiger ist mir da eher eine gewisse Konsistenz im Interface (Methodenbenennungen, Klammersetzung im Source, Einrückung (Tab vs Leerzeichen) usw)
-
Shade Of Mine schrieb:
Aquae schrieb:
Erst die public-Sachen, dann private... Den Benutzer kann ja nur das public interessieren
Interessant, ich mache immer privat zuerst weil den Leser des Source Codes kann ja nur die interna interessieren - das public interface steht ja in der doku

Das sehen viele OS-Entwickler (leider) anders. Da ist das public Interface die Doku.

-
Tachyon schrieb:
Shade Of Mine schrieb:
Aquae schrieb:
Erst die public-Sachen, dann private... Den Benutzer kann ja nur das public interessieren
Interessant, ich mache immer privat zuerst weil den Leser des Source Codes kann ja nur die interna interessieren - das public interface steht ja in der doku

Das sehen viele OS-Entwickler (leider) anders. Da ist das public Interface die Doku.

Stimmt, das kann ich auch nicht verstehen. Und ich rede hier nicht von Projekten wo der Author den Code möglichst unzugänglich machen wollte, sondern von richtigen OSS-Projekten wie XFCE.
Was ich auch immer wieder erstaunlich finde: man findet nirgends in einem Header-File ganz oben einen Kommentar der kurz erklärt was in der Datei ist. Im Regelfall steht dort nur der Copy 'n Paste GPL Text.
Kann ich echt nicht nachvollziehen.
-
franz schrieb:
Interessant, bei mir steht private am Schluss, weil das interessiert garantiert niemanden, denn da steht nur ein KlassePrivate d;*

Ah und in KlassePrivate steht ein KlassePrivatePrivate* d; ?
-
Shade Of Mine schrieb:
franz schrieb:
Interessant, bei mir steht private am Schluss, weil das interessiert garantiert niemanden, denn da steht nur ein KlassePrivate d;*

Ah und in KlassePrivate steht ein KlassePrivatePrivate* d; ?
Ich schätze mal, er auf das Handle-Body-Idiom anspricht, und dass außer einer Forward-Deklaration nichts von
KlassePrivateim Header zu sehen ist.
-
Tachyon schrieb:
und dass außer einer Forward-Deklaration nichts von
KlassePrivateim Header zu sehen ist.Exakt. Aber Handle-Body-Idiom kannte ich noch nicht, mir ist das als "Pimpl" bekannt.