Anonyme Klassentypen
Klassen können anonym sein, d. h. sie können ohne Bezeichner deklariert werden. Dies ist nützlich, wenn Sie einen Klassennamen durch einen typedef- Namen ersetzen, wie im Folgenden gezeigt:
typedef struct
{
unsigned x;
unsigned y;
} POINT;
Hinweis
Die Verwendung von anonymen Klassen, die im vorherigen Beispiel gezeigt wird, ist für das Beibehalten der Kompatibilität mit existierendem C-Code nützlich.In manchem C-Code wird hauptsächlich typedef zusammen mit anonymen Strukturen verwendet.
Anonyme Klassen sind außerdem nützlich, wenn Sie möchten, dass ein Verweis auf einen Klassenmember so angezeigt wird, als befände er sich nicht in einer separaten Klasse, wie im Folgenden gezeigt:
struct PTValue
{
POINT ptLoc;
union
{
int iValue;
long lValue;
};
};
PTValue ptv;
Im vorangehenden Code kann auf iValue mithilfe des Objektmember-Auswahloperators (.) wie folgt zugegriffen werden:
int i = ptv.iValue;
Anonyme Klassen unterliegen bestimmten Einschränkungen. (Weitere Informationen über anonyme Unions finden Sie unter Unions.) Anonyme Klassen:
Können keinen Konstruktor oder Destruktor aufweisen.
Können nicht als Argumente an Funktionen übergeben werden (es sei denn, die Typüberprüfung wird mithilfe von Ellipsen außer Kraft gesetzt).
Können nicht als Rückgabewerte von Funktionen zurückgegeben werden.