Semikolon nach Klassendefinition



  • Hey Leute,

    kann mir vllt. einer von euch erklären, warum nach Klassendefinitionen in C++ ein Semikolon stehen muss, jedoch z.B. nach Funktionsdefinitionen nicht?
    Hat das einen besonderen Hintergrund?

    Gruß und schönes Wochenende 🙂



  • MatheStein schrieb:

    kann mir vllt. einer von euch erklären, warum nach Klassendefinitionen in C++ ein Semikolon stehen muss, jedoch z.B. nach Funktionsdefinitionen nicht?
    Hat das einen besonderen Hintergrund?

    Du kannst nach der Definition einer Klasse beliebig viele Instanzen definieren, das irgendwann ja mal ein Ende haben muss, darum brauchst du den Semikolon.

    class Foo
    {
    }instanz_1,instanz_2,instanz_3;
    


  • Ach sooo stimmt ja, danke 🙂



  • Ob das so sinnvoll ist sei mal dahingestellt, aber die Definition einer Klasse/(struct) kann seit C auch zur Definition von Variablen oder Typnamen genutzt werden:

    struct // kein Name
    {
    } my_instance;
    
    typedef struct my_struct_
    {
    } my_struct; // War in C wichtig*, da sonst nur der Typ
                 // "struct my_struct_", nicht aber der Typ
                 // "my_struct_" bekannt war.
    

    * Man hätte es natürlich auch einfach in die nächste Zeile schreiben können.



  • Vielen Dank auch an dich 🙂


Anmelden zum Antworten