Typedefs de Visual C++ dans le Concepteur de classesVisual C++ Typedefs in Class Designer

Les instructions typedef créent une ou plusieurs couches d’indirection entre un nom et son type sous-jacent.Typedef statements create one or more layers of indirection between a name and its underlying type. Le Concepteur de classes prend en charge les types typedef C++ qui sont déclarés avec le mot clé typedef, par exemple :The Class Designer supports C++ typedef types, which are declared with the keyword typedef, for example:

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

Vous pouvez ensuite utiliser ce type pour déclarer une instance :You can then use this type to declare an instance:

COORD OriginPoint;

Bien que vous puissiez déclarer un typedef sans nom, le Concepteur de classes n’utilisera pas le nom de la balise que vous spécifiez ; il utilisera le nom généré par l’affichage de classes.Although you can declare a typedef without a name, Class Designer will not use the tag name that you specify; it will use the name that Class View generates. Par exemple, la déclaration suivante est valide, mais elle apparaît dans l’affichage de classes et le Concepteur de classes en tant qu’objet nommé __unnamed :For example, the following declaration is valid, but it appears in Class View and Class Designer as an object named __unnamed:

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

Pour plus d’informations sur l’utilisation du type typedef, consultez Typedef.For more information about using the typedef type, see Typedefs.

Une forme typedef C++ a la forme du type spécifié dans le typedef.A C++ typedef shape has the shape of the type specified in the typedef. Par exemple, si la source déclare typedef class, la forme a des angles arrondis et l’étiquette Class.For example, if the source declares typedef class, the shape has rounded corners and the label Class. Pour typedef struct, la forme a des angles carrés et l’étiquette Struct.For typedef struct, the shape has square corners and the label Struct.

Les classes et les structures peuvent avoir des typedefs imbriqués déclarés à l’intérieur. Ainsi, les formes de classe et de structure peuvent afficher des déclarations typedef imbriquées comme formes imbriquées.Classes and structures can have nested typedefs declared within them; therefore, class and structure shapes can show nested typedef declarations as nested shapes.

Les formes typedef prennent en charge les commandes Afficher en tant qu’association et Afficher en tant qu’association de collection dans le menu contextuel.Typedef shapes support the Show as Association and Show as Collection Association commands on the context menu.

Voici quelques exemples de types typedef pris en charge par le Concepteur de classes :The following are some examples of typdef types that the Class Designer supports:

typedef type name

nom : typename : type

typedeftypedef

Dessine une ligne d’association établissant une connexion au type nom, si possible.Draws an association line connecting to type name, if possible.

typedef void (*func)(int)

func: void (*)(int)

typedeftypedef

Typedef pour les pointeurs de fonction.Typedef for function pointers. Aucune ligne d’association n’est dessinée.No association line is drawn.

Le Concepteur de classes n’affiche pas de typedef si son type source est un pointeur de fonction.Class Designer does not display a typedef if its source type is a function pointer.

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

MyInt: int

typedeftypedef

A

ClasseClass

Dessine une ligne d’association qui pointe de la forme du type source vers la forme du type cible.Draws an association line pointing from the source type shape to the target type shape.

Class B {};

typedef B MyB;

B

ClasseClass

MyB : B

typedeftypedef

Un clic droit sur une forme typedef et un clic sur Afficher en tant qu’association affiche le typedef ou la classe et une ligne Alias reliant les deux formes (semblable à une ligne d’association).Right-clicking a typedef shape and clicking Show As Association displays the typedef or class and an Alias of line joining the two shapes (similar to an association line).

typedef B MyB;

typedef MyB A;

MyBar : Bar

typedeftypedef

Identique à ce qui précède.Same as above.

Class B {};  
typedef B MyB;  

class A {  
   MyB B;  
};  

B

ClasseClass

MyB : B

typedeftypedef

A

ClasseClass

MyB est une forme typedef imbriquée.MyB is a nested typedef shape.

#include <vector>

...

using namespace std;

...

typedef vector<int> MyIntVect;

vector<T>Classvector<T>Class

MyIntVect : vector<int>

typedeftypedef

class B {};

typedef B MyB;

class A : MyB {};

MyB : B

typedeftypedef

-> B-> B

B

A

ClassClass

-> MyB-> MyB

Le Concepteur de classes ne prend pas en charge l’affichage de ce type de relation à l’aide d’une commande de menu contextuel.Class Designer does not support displaying this kind of relationship by using a context menu command.

#include <vector>

Typedef MyIntVect std::vector<int>;

Class MyVect : MyIntVect {};

std::vector<T>

ClasseClass

MyIntVect : std::vector<int>

typedeftypedef

MyVect

ClasseClass

-> MyIntVect-> MyIntVect

Voir aussiSee also

Utilisation du code Visual C++Working with Visual C++ Code
TypedefTypedefs