Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Warum ; nach Klasse?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.08.2011, 13:31 Uhr
Haishi



Hallo, ich kenne es so, dass man Funktionsblöcke nicht mit einem Semikolon abschließen muss, warum ist das denn bei Klassen so?


C++:
  class Beispiel
  {
    // Code
  };

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: