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?
Das ist alles sehr subjektiv, aber im Allgemeinen für C ++ mache ich:
camelCase
für Funktionen und Variablen.
PascalCase
für Klassen.
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.
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.
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:
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.
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.
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.
Tags und Links c++ naming-conventions