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. |
|
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. |
|
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 |