C ++ Benennung: read_input () vs. readInput ()

8

Welche Namenskonvention ist in C ++ vorzuziehen? Die Unterstreichung Methode oder die camelCase Methode? Ich habe eine Zeit lang in Java programmiert und bin an die Namenskonventionen von camelCase gewöhnt. Welche ist häufiger?

Gibt es beim Definieren einer Klasse auch eine bevorzugte Reihenfolge von privaten / öffentlichen / geschützten Variablen / Methoden? Sind Freunde normalerweise am Ende?
Was ist mit typedefs, kommen sie am Anfang der Klassendefinition?

    
user855 23.11.2009, 19:30
quelle

8 Antworten

8

Das ist alles sehr subjektiv, aber im Allgemeinen für C ++ mache ich:

camelCase für Funktionen und Variablen.

PascalCase für Klassen.

%Vor%

In Klassen.

Bearbeiten: Diese 2 vergessen:

Ja, friend am Ende, typedef entweder am Anfang, wenn sie in der Klasse verwendet werden, oder nach, wenn sie (aus offensichtlichen Gründen) die Klasse verwenden.

    
Adam W 23.11.2009, 19:31
quelle
21

Ich bevorzuge die Boost-Route und passe die Standard-Bibliothek an. Das bedeutet lower_case_names . Ich mag, dass mein Code in Bezug auf die STL konsistent liest.

    
GManNickG 23.11.2009 19:53
quelle
6

Normalerweise respektiere ich die Traditionen der Plattform / Umgebung, in der ich programmiere, außer bei Multiplattform-C / C ++ - Projekten, bei denen ich neutral bin. Bei der Programmierung von C + raw Win32 tendiere ich dazu, die ungarische Schreibweise für Variablen (Typ oder Semantik-Präfixe) zu verwenden. Bei der Programmierung von MFC member Member-Variablen, etc. Das einzige, was ich in meinen Augen nicht leicht bekommen kann, ist die Unix / POSIX open_device_driver Konvention gegen OpenDeviceDriver Camelcase Stil.

    
Hernán 23.11.2009 20:00
quelle
3

Unterstriche sind oft häufiger auf Unix- oder plattformübergreifendem Code.

Windows-Code neigt dazu, camel casing

sein

allgemein öffentlich, geschützt, privat ist, was ich erwarten würde - aber vielleicht ist das mehr von meiner C # -Zeit.

    
dice 23.11.2009 19:32
quelle
3

Das Wichtigste ist, dass Sie konsequent bleiben. Wenn Sie den Code anderer Personen in Ihr Projekt integrieren, halten Sie sich an die von Ihnen verwendete Methode. Wenn Sie planen, diesen Code in Zukunft beispielsweise in ein Open-Source-Softwareprojekt einzubringen, sollten Sie sich an die Codierungskonventionen halten. Wenn Sie Ihren eigenen Code von Grund auf neu schreiben, würde ich sagen, dass Sie sich an die Konventionen halten, die Sie gewohnt sind. Dies wird besonders hilfreich sein, wenn Sie später zu Ihrem Code zurückkehren und versuchen zu verstehen, was Sie geschrieben haben.

In Bezug auf Struktur- / Klassenzugriffsspezifikationen sehen Sie normalerweise zuerst public members, gefolgt von protected und dann private (in der Reihenfolge der zunehmenden Zugriffskontrolle). Dies geschieht hauptsächlich aus Gründen der Lesbarkeit. Wenn andere Benutzer Ihren Code verwenden, sind es diese öffentlichen Mitglieder, mit denen sie interagieren werden, sodass sie leichter zu finden sind, wenn Sie sie an der Spitze der Deklaration platzieren. Das Bestellen von Mitgliedern auf diese Weise hält die Informationen, die am häufigsten verwendet werden, am ehesten am oberen Ende. Ich sehe friend nicht allzu oft, daher kann ich mich an keine Muster bezüglich seiner Verwendung erinnern. typedef erscheint normalerweise oben, so dass der Leser, wenn er durch den Rest der Klasse blättert, bereits Ihre benutzerdefinierten Typen verstanden hat (auch aus Gründen der Lesbarkeit sind typedef s normalerweise zusammen gruppiert und nicht mit Member-Deklarationen vermischt) .

Es gibt eine Reihe von bestehenden Kodierungskonventionen, die allgemein gebräuchlich sind, und die eine Sache, die sie gemeinsam haben, ist ein Standard. Unabhängig davon, mit welchem ​​System Sie arbeiten, selbst wenn Sie es selbst definieren, ist es hilfreich, wenn Sie ein Dokument (oder eine Seite mit Beispielcode) haben, das die Kodierungskonvention umreißt. Konsistenz verbessert die Lesbarkeit, besonders wenn Sie älteren Code irgendwann in der Zukunft erneut besuchen.

Hier sind ein paar Kodierungskonventionen, um Ihnen vielleicht ein paar Ideen zu geben:

bta 23.11.2009 20:23
quelle
0

Ich verwende Unterstriche für lokale Variablen; ALL_UPPERCASE für Makros und Konstanten; CamelCase für nichts und CamelCase für alles andere.

Ich benutze immer structs und niemals classes und beginne daher mit public: (ohne es zu spezifizieren) und setze private: am Ende.

Das ist alles sehr subjektiv und es gibt keine richtige oder falsche Antwort.

    
Andreas Bonini 23.11.2009 19:46
quelle
0
  

Welche Namenskonvention ist mehr?   in C ++ vorzuziehen? Der "Unterstrich"   Methode oder die CamelCase-Methode? ich habe   in Java für eine Weile codiert und ich bin   an die camelCase-Benennung gewöhnt   Konventionen. Welches ist mehr?   vorherrschend?

Ich würde sagen: "Bleib bei dem, was du darüber weißt, wenn du anfängst, deine eigenen Bibliotheken zu schreiben", sie werden beide regelmäßig benutzt.

  

Gibt es beim Definieren einer Klasse auch eine bevorzugte Reihenfolge von privaten / öffentlichen / geschützten Variablen / Methoden?

Dies variiert je nach Programmierer / Team. Ich bestelle nach Kategorie. Ich benutze eine Kategorie für "interne / private Methoden", und diese Kategorie ist in der Regel vorletzte (die letzte ist verboten Umsetzung).

  

Sind Freunde normalerweise am Ende?

Ich benutze sie selten; Ich füge sie oberhalb der Abhängigkeit (Methode) ein, andernfalls nach der Konstruktor / Destruktor-Kategorie.

  

Was ist mit typedefs, kommen sie am Anfang der Klassendefinition?

Dort stelle ich sie hin.

Wenn Sie ins Detail gehen wollen, gibt es öffentlich verfügbare Kodierungskonventionen. Da Sie bereits einen Java-Hintergrund haben, können Sie leicht den "Geschmack" in ihnen durchschneiden.

    
justin 23.11.2009 19:59
quelle
0

Jahrzehntelanges Codieren als Job hat meinen Fingern eine Krankheit zugefügt. Immer wenn ich mit meinem kleinen Finger die [SHIFT] -Taste für Großbuchstaben drücke, empfinde ich leichte Schmerzen.

Also kam ich dazu, snake_notation zu bevorzugen. Mit dem AutoHotKey-Dienstprogramm habe ich [alt] + [Leer] -Kombination dem "Unterstreichen" von Schlange zugewiesen. Es ist wenig unangenehm für meinen Daumen, [alt] zu drücken, aber besser als mit kleinen Fingern. (Eigentlich [Strg] + [Leerzeichen] ist viel besser, aber VisualStudio verwendet diese Kombination als IntelliSense.) Außerdem fühle ich, dass es schneller ist als CamelCase.

Ich möchte, dass i-rocks eine neue Tastatur mit 'Unterstrich-Taste' für Programmierer startet, die snake_notation bevorzugen.

    
user1276700 19.11.2017 10:47
quelle

Tags und Links