Wenn fertig, bitte Fenster schließen

Überschreiben von Variablen

Obwohl es in der OOP fast ein Vergehen ist, aus Memberfunktionen heraus auf globale Daten zuzugreifen, so ist dieses jedoch nicht generell verboten.

Hierbei können wieder zwei Fälle auftreten:

1. Gibt es innerhalb der Klasse kein Member mit dem gleichen Namens wie das globale Datum, so reicht die alleinige Angabe des Variablennamens aus.

PgmHeader
// Globale Variable
int value;
// Klassendefinition
struct anyClass
{
   ... // kein Member mit dem Namen value
   void DoAny()
   {
      value = 10; // globale Variable setzen
   ...
   }
};

2. Enthält dagegen die Klasse eine Eigenschaft mit dem gleichen Namen wie das globale Datum, so verdeckt diese Eigenschaft zunächst das globale Datum. Um trotzdem auf das globale Datum zugreifen zu können, wird vor dem Namen der globale Zugriffsoperator :: (zwei Doppelpunkte) gestellt.

PgmHeader
// Globale Variable
int value;
// Klassendefinition
struct anyClass
{
   double value;    // Member mit gleichem Namen wie globale Variable
   void DoAny()
   {
      value = 1.2   // Member setzen
      ::value = 10; // globale Variable setzen
   ...
   }
};