Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Verwendung des typedef Bezeichner mit Klassentypen wird größtenteils aufgrund von ANSI C-Praxis des Deklarierens unbenannter Strukturen in typedef Deklarationen unterstützt.Zum Beispiel verwenden viele C-Programmierer Folgendes:
// typedef_with_class_types1.cpp
// compile with: /c
typedef struct { // Declare an unnamed structure and give it the
// typedef name POINT.
unsigned x;
unsigned y;
} POINT;
Der Vorteil einer solchen Deklaration Deklarationen besteht darin, dass als aktiviert:
POINT ptOrigin;
statt:
struct point_t ptOrigin;
In C++ ist der Unterschied zwischen typedef Namen und realen Typen (deklariert mit Klasse, struct, Unionund enum unterschiedlicher Schlüsselwörter).Obwohl die C-Praxis des Deklarierens einer namenlosen Struktur in einer typedef-Anweisung weiterhin funktioniert, enthält sie keine Notations Vorteile, wie sie in C beschrieben.
// typedef_with_class_types2.cpp
// compile with: /c /W1
typedef struct {
int POINT();
unsigned x;
unsigned y;
} POINT;
Im vorherigen Beispiel deklariert eine Klasse mit dem Namen POINT mit unbenannten Klassen typedef Syntax.POINT wird als Klassennamen behandelt. Es gelten folgende Einschränkungen für Namen vorstellten auf diese Weise zu:
Der Name (das Synonym) darf nicht nach Klasse, structoder Union Präfix angezeigt werden.
Der Name darf nicht als Konstruktor- oder Destruktor innerhalb einer Klassendeklaration Namen verwendet werden.
Zusammenfassend stellt diese Syntax keinen Mechanismus für die Vererbung oder die Erstellung, Zerstörung bereit.