Gültigkeitsbereich von Klassennamen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Klassen - Index

Klassennamen sind in der Regel lokal gültig. Wenn der Klassenname im selben Gültigkeitsbereich mehr als einmal erscheint, sind einige Besonderheiten zu beachten. Der Gültigkeitsbereich von Klassennamen beginnt bei der Deklaration und endet mit dem einschließenden Block. Wenn ein anderes Objekt, eine andere Klasse oder Funktion oder ein anderer Aufzählungstyp denselben Namen hat, wird der Klassenname im einschließenden Gültigkeitsbereich verdeckt. Wird ein Klassenname in einem Gültigkeitsbereich definiert, der die Definition eines Objekts, einer Funktion oder eines Aufzählungstyps mit demselben Namen enthält, kann auf diese Klasse nur mit Hilfe seines ermittelten Typ-Bezeichners zugegriffen werden. Das bedeutet, der Klassenschlüssel class, struct oder union muss zusammen mit dem Klassennamen verwendet werden. Zum Beispiel:

struct S { /*…*/ };
int S(struct S *Sptr);
void func(void) {
  S t;         // ILLEGAL declaration: no class key and function S in scope
  struct S s;  // OK: elaborated with class key
  S(&s);       // OK: this is a function call
}

C++ erlaubt auch forward-Klassendeklarationen:

class X;  // no members, yet!

Forward-Deklarationen von Klassen ermöglichen die Nutzung spezieller Referenzen auf den Klassennamen X (normalerweise Referenzen auf Zeiger auf die Klassenobjekte), bevor die Klasse vollständig deklariert wird. Weitere Informationen finden Sie unter Deklarationen von Struktur-Membern. Bevor Sie Objekte dieser Klassen definieren und verwenden können, müssen Sie jedoch eine vollständige Klassendeklaration mit Membern vornehmen.

Siehe auch die Syntax für forward-Deklarationen der VCL-Klassendeklarationen.


Siehe auch