Share via


Visual C++-Typedefs im Klassen-Designer

Typedef-Anweisungen erstellen eine oder mehrere Dereferenzierungsschichten zwischen einem Namen und seinem zugrunde liegenden Typ. Der Klassen-Designer unterstützt C++-Typedef-Typen, die mit dem typedef-Schlüsselwort deklariert werden, zum Beispiel:

typedef class coord
{
   void P(x,y);
   unsigned x;
   unsigned y;
} COORD;

Mit diesem Typ können Sie dann eine Instanz deklarieren:

COORD OriginPoint;

Auch wenn Sie einen Typedef ohne einen Namen deklarieren können, wird der Klassen-Designer nicht den von Ihnen angegebenen Tagnamen, sondern den von der Klassenansicht generierten Namen verwenden. So ist beispielsweise die folgende Deklaration zwar zulässig, in der Klassenansicht und im Klassen-Designer wird sie jedoch als ein Objekt namens __unnamed angezeigt:

typedef class coord
{
   void P(x,y);
   unsigned x;
   unsigned y;
};

Weitere Informationen zur Verwendung des typedef-Typs finden Sie unter typedef-Spezifizierer.

Eine C++-Typedef-Form hat die Form des in der Typedef angegebenen Typs. Wenn beispielsweise die Quelle typedef class deklariert, hat die Form abgerundete Ecken und die Bezeichnung Class. Bei typedef struct hat die Form quadratische Ecken und trägt die Bezeichnung Struct.

In Klassen und Strukturen können Typedefs geschachtelt deklariert sein. Daher können Klassen- und Strukturformen geschachtelte Typedef-Deklarationen als geschachtelte Formen anzeigen.

Typedef-Formen unterstützen die Befehle Als Assoziation anzeigen und Als Auflistungsassoziation anzeigen im Kontextmenü.

Nachfolgend sind einige Beispiele für Typdef-Typen aufgeführt, die vom Klassen-Designer unterstützt werden:

Codeelement

Ansicht Klassen-Designer

typedef type name

Name : Typ

typedef

Zieht eine Assoziationslinie zum Typ name (wenn möglich).

typedef void (*func)(int)

func: void (*)(int)

typedef

Typedef für Funktionszeiger. Es wird keine Assoziationslinie gezeichnet.

Typedefs, deren Quelltyp ein Funktionszeiger ist, zeigt der Klassen-Designer nicht an.

typedef int MyInt;
class A {
   MyInt I;
};

MyInt: int

typedef

A

Klasse

Zieht eine Assoziationslinie von der Quelltypform zu der Zieltypform.

Class B {};

typedef B MyB;

B

Klasse

MyB : B

typedef

Wenn Sie mit der rechten Maustaste auf eine Typedef-Form klicken, und dann auf Als Assoziation anzeigen klicken, wird die Typedef oder Klasse sowie eine Alias von-Zeile angezeigt, die die beiden Formen verbindet (wie eine Assoziationslinie).

typedef B MyB;

typedef MyB A;

MyBar : Bar

typedef

Dasselbe wie oben.

Class B {};
typedef B MyB;
class A {
   MyB B;
};

B

Klasse

MyB : B

typedef

A

Klasse

MyB ist eine geschachtelte Typedef-Form.

#include <vector>

...

using namespace std;

...

typedef vector<int> MyIntVect;

vector<T>Klasse

MyIntVect : vector<int>

typedef

class B {};

typedef B MyB;

class A : MyB {};

MyB : B

typedef

-> B

B

A

Klasse

-> MyB

Das Anzeigen dieser Art von Beziehung über einen Kontextmenübefehl wird vom Klassen-Designer nicht unterstützt.

#include <vector>

Typedef MyIntVect std::vector<int>;

Class MyVect : MyIntVect {};

std::vector<T>

Klasse

MyIntVect : std::vector<int>

typedef

MyVect

Klasse

-> MyIntVect

Siehe auch

Referenz

typedef-Spezifizierer

Konzepte

Arbeiten mit Visual C++-Code (Klassen-Designer)