001
29.08.2011, 14:17 Uhr
ao
(Operator)
|
Die Klammern markieren hier keinen Funktionsblock. Sie sind hier eher mit den Klammern zu vergleichen, die man um Struktur-Definitionen macht.
Man kann mit einem class-Statement nicht nur die Klasse als Typ definieren, sondern im gleichen Schritt auch eine Variable von diesem Typ deklarieren:
C++: |
class Beispiel { // Code } meinBeispiel;
// Anwendung: int main () { meinBeispiel.Bla (blubb); }
|
Tut man das nicht, muss man durch das Semikolon klarmachen, dass das class-Statement jetzt am Ende ist und dass danach das nächste Syntax-Element beginnt. Andernfalls käme der Parser an dieser Stelle durcheinander:
C++: |
class Beispiel { // Code } // class-Statement beendet, wir lassen das Semikolon weg.
// weiter gehts z.B. so: int something;
|
Der Parser sieht hier folgendes:
class Beispiel { // irgendwas } int something;
und denkt, dass du eine Variable vom Typ Beispiel und mit Namen "int" erzeugen willst - geht nicht, weil "int" ein reserviertes Wort ist. Aber auch wenn nicht, müsste spätestens nach "int" ein Semikolon oder ein Komma folgen. Das kommt nicht, also Syntaxfehler. |