10

Ich schreibe eine Thesis über eine in C++ implementierte Software. Hier beschreibe ich verschiedene C++ Klassen, was in etwa so aussieht:

Die Thread-Klasse kapselt die ...

Die Start()-Methode erzeugt einen neuen Thread...

In diesem Beispiel ist "Thread" der Name der Klasse und "Start" der Name einer Methode der Klasse.

Was ist die korrekte Schreibweise für "Thread-Klasse" und "Start()-Methode", mit oder ohne Bindestrich?

Wie ist es mit:

Die Methode Start() erzeugt einen neuen Thread...

?

Update: Die Klassen- und Methodenname werden durch eine "nichtproportionale Schriftart" hervorgehoben:

enter image description here

enter image description here

enter image description here

13
  • 2
    Kurze Antwort: Bindestrich ist richtig, und bei der »Methode ›Start()‹« müssen zusätzlich Anführungszeichen oder Kursivsetzung oder vergleichbares als Auszeichnung stehen. Jemand wird schon bald mit der entsprechenden Dudenparagraphregel antworten, denk ich.
    – Jan
    Commented Sep 23, 2015 at 11:21
  • 1
    @chirlu Nicht zwingend nötig, aber zu empfehlen. Ich finde, das Update sieht richtig gut aus.
    – Matthias
    Commented Sep 23, 2015 at 12:06
  • 5
    Typographischer Hinweis: Der Bindestrich sollte aus der Grundschrift sein. Auf den Bildern sieht es so aus, als wäre es der aus der Festbreitenschrift.
    – chirlu
    Commented Sep 23, 2015 at 17:47
  • 2
    Nein, auf jeden Fall Bindestrich (hyphen). Wenn es die Grundschrift ist, ist es richtig; ich kann es nur nicht richtig erkennen.
    – chirlu
    Commented Sep 23, 2015 at 18:54
  • 2
    Stephen T. Lavavej allerdings schreibt in Microsoft's VC++-Blog Funktionsnamen immer mit Klammern, inkl. operator()(), was der Unterscheidbarkeit von Klassen zugute kommt. Es geht also beides wirklich gut. Commented Oct 6, 2015 at 15:53

2 Answers 2

13

Zusammensetzungen, die fremde (meist englische) Wortgruppen enthalten, werden mit Bindestrich geschrieben, d.h. nicht eingedeutschte Wörter werden korrekterweise mit Bindestrich(1) in zusammengesetzte Substantive eingebaut, also

die Thread-Klasse und die Start()-Methode.

Der Bindstrich darf nicht entfallen, so dass ein Gebilde aus zwei extra groß geschriebenen Wörtern entstehen würde.(2)

Korrekt ist auch "Die Methode Start()" zu verwenden.

5
  • Manche englische Wörter sind im Deutschen schon so weit integriert, dass man sie bei Zusammensetzungen schon wie deutsche Wörter behandeln kann, wie z.B.: duden.de/rechtschreibung/Online_
    – äüö
    Commented Sep 23, 2015 at 11:54
  • 3
    Dann leidet aber die Einheitlichkeit. Die Startmethode einer Threadklasse könnte ja auch eine Methode sein, die nicht 'Start()' heißt und in einer Klasse vorkommen, die ein Thread ist, aber auch nicht so heißt. Hier unterstreicht die Schreibung, dass die Elemente auch so heißen, wie sie bezeichnet werden. Commented Sep 24, 2015 at 1:03
  • 8
    Die alternative Konstruktion ist fast immer vorzuziehen. "Die Programmiersprache C++" ist unermeßlich viel besser als "Die C++-Programmiersprache" (auch wenn der Verlag anderer Meinung war). Commented Sep 24, 2015 at 6:30
  • @userunknown: Und das Schriftbild leidet mit, wenn für die Bezeichner bei der Schreibweise in einem Wort dennoch eine andere Schriftart verwendet wird - Startmethode, Threadklasse. Commented Nov 16, 2019 at 13:07
  • @O.R.Mapper: Das ist dann aber ein Wasch-mich-aber-mach-mich-nicht-nass-Problem. Wenn man die exakte Schreibung hervorheben will, dann ist das Mittel dazu ja gerade die Störung des Leseflusses. Du kannst nicht beides haben - eine smoothe Uniformität und Hervorhebung. Die runden Klammern bei Methodennamen würde ich jedenfalls weglassen, oder würde man auch schreiben "die Start(at: DateTime) - Methode"? In den seltensten Fällen ist es nötig, den Leser zu behandeln als sei er lernbehindert, wenn weit und breit keine zweite Startmethode da ist, mit der man die in Rede stehende verwechseln könnte. Commented Nov 16, 2019 at 13:20
1

Wenn benannte Entitäten beschrieben werden, sollte man überhaupt keine Bindestrichkonstruktion einsetzen, wie Kilian Foth bereits in einem Kommentar schrieb.

Bei zusammengesetzten Nomen steht rechts das Kopfwort, was normalerweise angibt, was etwas ist. Links davon steht ein beschreibendes Wort. Wikipedia hat eine Liste von gebräuchlichen Mustern dafür.

Kein solches Muster ist es, den Namen einer Entität mit deren Art zu einem zusammengesetzten (wenngleich mit Bindestrich getrennten) Wort zu verbinden.

Es ist völlig legitim, „der OK-Button“ oder „eine Thread-Klasse“ zu sagen. Das sind in diesem Fall Beschreibungen. Nicht gut ist „die Thread-Klasse“ o.Ä., denn so etwas kommt ansonsten auch nie vor: Nicht „der Rhein-Fluss“, sondern „der Fluss Rhein“, nicht „der AF-447-Flug“, sondern „Flug AF 447“ – und daher immer „die Klasse Thread.

Sobald das Wort einmal als Klassenname etabliert ist, kann die Art weggelassen werden: „Um Thread zu instanziieren, ...“.

Um die Verwirrung komplett zu machen: Eine Instanz von Thread könnte dann wieder als ein „Thread-Objekt“ bezeichnet werden.

Mal ganz davon abgesehen, dass Thread ein furchtbar aussageschwacher Name für eine Klasse ist.

3
  • Das Beispiel "der Rhein-Fluss" ist gut. Da muss ich mal drüber nachdenken. Danke.
    – sergej
    Commented Sep 25, 2015 at 15:02
  • Die Thread-Klasse ist aber keine Entität, sondern ist der Typ aller Entitäten mit Thread-Eigenschaften, dessen instanziierte Objekte dann also die Entitäten sind. Es handelt sich also nicht wie bei Rhein oder dem benannten Flug um Einzelvertreter, sondern um eine Typbezeichnung. Also ist Thread-Klasse richtig.
    – äüö
    Commented Sep 29, 2015 at 16:48
  • 1
    @falkb Eine Klasse (Sammlung/Bauplan/...) ist auch eine Entität, im Sinne von "existierendes, benennbares Ding". Sie hat einen Namen, sie existiert, sie kann sogar in vielen Sprachen, wie auch C++, Daten und Methoden beinhalten. Mir ist klar, dass es in der Informatik einen anderen, enger gefassten Entitätsbegriff gibt, ich beziehe mich jedoch auf den des allgemeinen Sprachgebrauchs, nachdem selbst abstrakte Konzepte Entitätscharakter haben können. Commented Sep 29, 2015 at 18:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.