";" 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.


Anmelden zum Antworten