Anonyme Klassentypen

Klassen können anonym sein, das heißt sie können ohne einen Bezeichnerdeklariert werden.Dies bietet sich an, wenn Sie einen Klassennamen durch einen typedef Namen ersetzen, wie im Folgenden dargestellt:

typedef struct
{
    unsigned x;
    unsigned y;
} POINT;
HinweisHinweis

Die Verwendung von anonymen Klassen, die im vorherigen Beispiel gezeigt werden, ist für das Beibehalten der Kompatibilität mit existierendem C-Code nützlich.In jedem C-Code ist die Verwendung von typedef in Verbindung mit anonymen Strukturen überwiegend.

Anonyme Klassen sind auch nützlich, wenn Sie einen Verweis auf einen Klassenmember, als wäre er nicht in einer separaten Klasse enthalten war, wie im Folgenden dargestellt werden soll:

struct PTValue
{
    POINT ptLoc;
    union
    {
        int  iValue;
        long lValue;
    };
};

PTValue ptv;

Im vorherigen Code kann iValue ausgewählten Objekt mithilfe des Operators (.) Member wie folgt zugegriffen werden:

int i = ptv.iValue;

Anonyme Klassen bestimmte Einschränkungen unterliegen.(Weitere Informationen über anonyme Unions finden Sie unter Unions). Anonyme Klassen:

  • Kann einen Konstruktor oder einen Destruktor verfügen.

  • Kann nicht als Argumente an Funktionen übergeben werden (es sei denn, Typüberprüfung mit den Auslassungspunkten besiegt wird).

  • Kann nicht als Rückgabewerte von Funktionen zurückgegeben werden.

Siehe auch

Referenz

Definieren von Klassentypen