Klassendeklarationen sind auch lokal bzw. verschachtelt möglich. Dabei
ist der Sichtbarkeitsbereich identisch zu anderen lokalen Variablen: Die
entsprechenden Klassen sind nach außen hin nicht erkennbar.
Lokal und verschachtelt deklarierte und definierte Klassen können aus dem
umschließenden Bezugsrahmen nur Typnamen, statische Variablen,
extern-Variablen und -Funktionen sowie Aufzählungen
verwenden.
verschachtelte Klassen-Deklarazion
int x, y;
class aussen {
int x; static int z;
class innen {
void f(int i) {
x = i; // Fehler: x gehoert zu aussen.
z = i; // ok, z ist statisch.
::x = i; // ok, ::x ist global
y = i; // auch ok
}
};
};
innen x; // Fehler: innen nicht bekannt.