Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Schreibung von Typen-/Klassennamen

8 views
Skip to first unread message

Gregor Szaktilla

unread,
Jun 28, 2018, 8:30:04 AM6/28/18
to
Hallo zusammen!

In einem Forum habe ich aufgeschnappt, dass es üblich sei,
Typen-/Klassennamen mit einem Großbuchstaben zu beginnen, was
einleuchtend klingt, weil ich dadurch z. B.

Pixel pixel[]=...

anstatt

pixel p[]=...

schreiben kann.

Ist das tatsächlich üblich oder eine Art von „Dialekt“?

Gruß

Gregor

--
X-ggl-fuck-off: yes

Markus Donath

unread,
Jun 28, 2018, 11:30:03 AM6/28/18
to
Keine Ahnung, ob das üblich ist, aber die Begründung leuchtet mir nicht
ein. Ich kann ja genauso:

pixel pixel[] = ...

schreiben.

Markus

Stefan Reuther

unread,
Jun 28, 2018, 12:40:03 PM6/28/18
to
Am 28.06.2018 um 13:12 schrieb Gregor Szaktilla:
> In einem Forum habe ich aufgeschnappt, dass es üblich sei,
> Typen-/Klassennamen mit einem Großbuchstaben zu beginnen, was
> einleuchtend klingt, weil ich dadurch z. B.
>
> Pixel pixel[]=...
>
> anstatt
>
> pixel p[]=...
>
> schreiben kann.
>
> Ist das tatsächlich üblich oder eine Art von „Dialekt“?

Was ist denn der Unterschied zwischen "üblich" und "Dialekt"?

Ich würde dies für einen der dominierenden Stile/Dialekte halten:
Klassennamen in KamelKäse. Kommt wohl von Java, und die haben das auch
nicht erfunden. Ein anderer dominierender Stil/Dialekt ist der der
Standardbibliothek: unordered_map, nicht UnorderedMap. Der MFC-Stil
("C"-Präfix) ist gefühlt auf dem Rückzug.

Mehr Variation gibt es dann in den Funktionsnamen (findIf, find_if,
FindIf?), typedefs (mit _t oder ohne?), Namespaces (klein oder groß?),
Dateinamen (.h, .hpp, .hxx, .hh, ohne?), enums (Präfix?
Großbuchstaben?), Variablen (Präfixe für Member/Globals? m_, m, _?).

https://isocpp.org/wiki/faq/coding-standards#identifier-name-conventions

Und falls es dir darum ging, ob die Variable 'pixel' heißen darf: die
Länge des Variablennamen sollte in etwa mit der Größe ihres
Gültigkeitsbereichs korellieren. Wenn sie lange lebt eben 'thePixel',
aber besser ist natürlich, wenn man das Pixel besser benennen kann:
'backgroundPixel', 'targetPixel', 'originalPixel', etc. Und wenn sie nur
kurz lebt, ist 'p' völlig ok.


Stefan

Gregor Szaktilla

unread,
Jun 28, 2018, 3:20:03 PM6/28/18
to
Am 28.06.2018 um 18:15 schrieb Stefan Reuther:
> Klassennamen in KamelKäse.

Das scheint es tatsächlich zu sein. Und da ich nie probiert habe

pixel pixel[]...

zu schreiben, bin ich darauf reingefallen.

Was soll's, das nächste Wochenende kommt bestimmt.

Stefan Ram

unread,
Jul 1, 2018, 3:50:04 AM7/1/18
to
Gregor Szaktilla <spam...@ktilla.de> writes:
>In einem Forum habe ich aufgeschnappt, dass es üblich sei,
>Typen-/Klassennamen mit einem Großbuchstaben zu beginnen

Bjarne Stroustrup verwendet Großschreibung des
Anfangsbuchstabens für Typen und Begriffe, die
außerhalb der Standardbibliothek definiert werden.

Die "C++ Core Guidelines" sprechen sich in NL.10 dagegen
aus, große Buchstaben ab der Position 1 eines Namens
zu verwenden. Daher ist »My_map« ok, aber nicht »MyMap«.
(Ausnahme: Makronamen wie »MY_MAP« sind ok.)

Wenn man in einer Organisation arbeitet, in der es bereits
etablierte Gebräuche gibt, sollte man diese jedoch
übernehmen (Konsistenz ist wichtiger), selbst wenn
sie Schreibweisen wie »MyMap« verwenden.

Persönlich bevorzuge ich vollständige Kleinschreibung.

Ein Kuriosität: Bei Großschreibung sollte man dann nie
Klassennamen mit nur einem Buchstaben verwenden
(wie »class X« im Kapitel 16.2 von Stroustrup TCPL),
da diese /vollständig/ aus Großbuchstaben bestehen und
ALL_CAPS laut "NL 9" nur für Makros verwendet werden sollte.)

(Ja, in meiner (etwas alten) Ausgabe der CCG heißt es
»NL 9« [mit Leerzeichen], aber NL.10 [mit Punkt].)
0 new messages