";" ans Klassenende?
-
Hallo,
ich bin etwas verwirrt:
Wann muss ich denn eine c++-Quelldatei, bzw. eine Header-Datei mit einem ";" hinter der letzten "}" beenden. In meinem Buch steht es mal so und mal so...
Vielen Dank,
informat
-
In Kurzfassung: Bei Typdeklarationen brauchst du das ;, bei Funktionen brauchst du es nicht.
Ja, das kann mitunter etwas verwirrden sein - aber der Compiler wird sich schon melden, wenn du es falsch machst.
-
Oder noch kürzer: Wenn das Ganze mit einem "Typklassifizierer" (class, struct, enum, ...) beginnt: Semikolon.
Sonst nicht.
Gruß,
Simon2.
-
Simon2 schrieb:
Oder noch kürzer: Wenn das Ganze mit class (oder struct) beginnt: Semikolon.
oder enum oder union

Wobei es auch wieder Ausnahmen gibt -
struct my_type create_mytype(int param){...}ist eine Funktion (vermutlich aus einer C-Bibliothek übernommen) und hat deshalb kein Semikolon
-
Ja, ich wollte auch grad drauf rumhacken, aber Simon hat sich gerade rechtzeitig besonnen

*scnr*
-
Ja, es ist ein Kreuz mit dem Spagat zwischen "griffig formuliert" und "allgemeingültig"...

Eigentlich merke ich mir immer: "Vorne class, hinten Semikolon"
Gilt halt für "Klassen und Klassenartige" (struct, enum, Klassentemplates, onions ...äh unions, ....).Die "C-Notation" habe ich nie wirklich begriffen ... (mal nen struct davor, mal ein Bezeichner davor, mal 2 dahinter, ....
) - da rette ich mich mit einem "typedef struct { } MyStruct;" ... und alles Andere überlasse ich Cracks. 
Gruß,
Simon2.