Lektion 79:

Der Scope-Resolution-Operator

Es könnte einmal vorkommen, daß man ein Giro-Konto-Objekt hat, aber die anzeigen-Funktion der Klasse Konto aufrufen möchte. Das geht jetzt nicht mehr.

void main()
{
   Girokonto g;
   g->anzeigen();
};

Man kann aber die genaue Funktion benennen, die aufgerufen werden soll. Das geht mit dem Scope-Resolution-Operator "::". Die anzeigen-Funktion in der Klasse Girokonto heißt Girokonto::anzeigen und die anzeigen-Funktion in der Klasse Konto heißt Konto::anzeigen.

void main()
{
   Girokonto g;
   g.Konto::anzeigen();
};

Das ergibt aber normalerweise wenig Sinn. Wenn Girokonto eine eigene Methode hat, dann soll diese gefälligst auch aufgerufen werden. Was aber recht sinnvoll sein kann, ist in der Methode Girokonto::anzeigen die Methode Konto::anzeigen aufzurufen.

Aus

void anzeigen()//virtual in Konto
   {
      cout<<"Kontostand: "<<kontostand<<endl;
      cout<<"Ueberziehungsrahmen: "<<ueberziehungsrahmen<<endl;
   };

wird

void anzeigen()//virtual in Konto
   {
      Konto::anzeigen();
      cout<<"Ueberziehungsrahmen: "<<ueberziehungsrahmen<<endl;
   };

Würde man einfach nur

   void anzeigen()//virtual in Konto
   {
      anzeigen();
      cout<<"Ueberziehungsrahmen: "<<ueberziehungsrahmen<<endl;
   };

schreiben, dann würde sich die Methode Girokonto::anzeigen einfach nur selbst aufrufen, sich dabei wieder nur selbst aufrufen, usw.



Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern.
[aktuelle Version] [inhalt] [index]      [Fehlerkorrektur, Verbesserungsvorschlag]

© Volkard Henkel <volkard@normannia.de>, last update: 08/25/00