semikolon bei klassen und co



  • hi,

    wozu braucht man das semikolon bei der deklaration von klassen, structs, enum's usw. und bei einem funktionsrump (welcher auch die spitzen klammern {} hat), nicht?

    liegt es daran, das klassen deklariert werden und funktionen deklariert und definiert, wobei bei der definition eben kein semikolon verwendet werden muss und bei der deklaration selber aber schon. in anderen worten, alles was deklariert wird und keine definition ist, endet mit einem semikolon, damit der compiler weiss, dass die anweisung beendet ist?



  • Die Klassen sind auch definiert. Lediglich ihre Methoden sind (meistens) nur deklariert. Das Semikolon ist vermutlich vor allem dazu da, um die mit einer Klassendefinition möglicherweise einhergehenden Variablendeklarationen der Klasse abzuschließen:

    class A; //Klassendeklaration
    void f(); //Funktionsdeklaration
    
    void f() {bla();} //Funktionsdefinition
    
    class A 
    {
      /* ... */
    } a, b, c, d; //gleich vier Variablen vom Typ A deklariert!
    
    class B
    {}; //hier weiß der Compiler, es gibt keine Variablendeklarationen...
    


  • stimmt, danke


Log in to reply