Wenn fertig, bitte Fenster schließen
Obwohl es in der OOP fast ein Vergehen ist, aus Memberfunktionen heraus auf globale Daten zuzugreifen, so ist dieses jedoch generell nicht durch den C++ Standard 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.
|
// 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 zunächst diese Eigenschaft das globale Datum. Um trotzdem auf das globale Datum zugreifen zu können, wird vor dem Namen wiederum der globale Zugriffsoperator :: (zwei Doppelpunkte) gestellt.
|
// 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 ... } }; |
|
|