Partager via


Typedefs de Visual C++ dans le Concepteur de classes

Les instructions de typedef créent une ou plusieurs couches d'indirection entre un nom et son type sous-jacent. Le Concepteur de classes prend en charge des types typedef C++ qui sont déclarés avec le mot clé typedef, par exemple :

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

Vous pouvez utiliser ensuite ce type pour déclarer une instance :

COORD OriginPoint;

Bien que vous puissiez déclarer un typedef sans nom, le Concepteur de classes n'utilise pas le nom de balise que vous spécifiez, mais le nom généré par l'Affichage de classes. Par exemple, la déclaration suivante est valide, mais elle apparaît dans l'Affichage de classes et le Concepteur de classes comme un objet nommé __unnamed :

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

Pour plus d'informations sur l'utilisation du type typedef, consultez typedef Specifier.

Une forme de typedef C++ a la forme du type spécifié dans le typedef. Par exemple, si la source déclare typedef class, la forme a des angles arrondis et l'étiquette Class. Pour typedef struct, la forme a des angles carrés et l'étiquette Struct.

Les classes et structures peuvent avoir des typedefs imbriqués déclarés au sein d'eux-mêmes ; par conséquent, la classe et les formes de structure peuvent afficher des déclarations de typedef imbriquées comme formes imbriquées.

Les formes de typedef prennent en charge les commandes Afficher en tant qu'association et Afficher en tant qu'association de collection dans le menu contextuel.

Les éléments suivants sont quelques exemples de types de typdef pris en charge par le Concepteur de classes :

Élément de code

Affichage Concepteur de classes

typedef type name

nom : type

typedef

Dessine une ligne d'association qui se connecte au nom de type, si possible.

typedef void (*func)(int)

func: void (*)(int)

typedef

Typedef pour les pointeurs fonction. Aucune ligne d'association n'est dessinée.

Le Concepteur de classes n'affiche pas de typedef si son type de source est un pointeur fonction.

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

MyInt: int

typedef

A

Classe

Dessine une ligne d'association qui pointe de la forme de type source vers la forme de type de cible.

Class B {};

typedef B MyB;

B

Classe

MyB : B

typedef

Cliquez avec le bouton droit sur une forme de typedef et cliquez sur Afficher en tant qu'association pour afficher le typedef ou la classe et un Alias de ligne qui joignent les deux formes (semblable à une ligne d'association).

typedef B MyB;

typedef MyB A;

MyBar : Bar

typedef

Identique à ce qui précède.

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

B

Classe

MyB : B

typedef

A

Classe

MyB est une forme de typedef imbriquée.

#include <vector>

...

using namespace std;

...

typedef vector<int> MyIntVect;

vector<T>Classe

MyIntVect : vector<int>

typedef

class B {};

typedef B MyB;

class A : MyB {};

MyB : B

typedef

-> B

B

A

Classe

- > MyB

Le Concepteur de classes ne prend pas en charge l'affichage de ce type de relation en utilisant une commande de menu contextuel.

#include <vector>

Typedef MyIntVect std::vector<int>;

Class MyVect : MyIntVect {};

std::vector<T>

Classe

MyIntVect : std::vector<int>

typedef

MyVect

Classe

- > MyIntVect

Voir aussi

Référence

typedef Specifier

Concepts

Utilisation du code Visual C++ (Concepteur de classes)