Condividi tramite


Typedef di Visual C++ in Progettazione classi

Aggiornamento: novembre 2007

Le istruzioni typedef creano uno o più livelli di riferimento indiretto tra un nome e il relativo tipo sottostante. Progettazione classi supporta i tipi typedef di C++ dichiarati con la parola chiave typedef, ad esempio:

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

È quindi possibile utilizzare questo tipo per dichiarare un'istanza:

COORD OriginPoint;

Anche se è possibile dichiarare un typedef senza nome, Progettazione classi non utilizzerà il nome del tag specificato bensì il nome generato da Visualizzazione classi. Ad esempio, la dichiarazione seguente è valida, ma viene visualizzata in Visualizzazione classi e Progettazione classi come oggetto denominato __senzanome:

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

Per ulteriori informazioni sull'utilizzo del tipo typedef vedere typedef Specifier.

La forma di un typedef di C++ è quella del tipo specificato nel typedef. Ad esempio, se l'origine dichiara typedef class, la forma ha angoli arrotondati e l'etichetta Classe. Per typedef struct, la forma ha angoli quadrati e l'etichetta Struct.

Classi e strutture possono avere typedef nidificati dichiarati in esse; pertanto, le forme delle classi e delle strutture possono mostrare dichiarazioni typedef nidificate come forme nidificate.

Le forme di typedef supportano i comandi Mostra come associazione e Mostra come associazione di insiemi dal menu di scelta rapida.

Gli elementi seguenti sono alcuni esempi di tipi typedef supportati da Progettazione classi:

Elemento di codice

Visualizzazione di Progettazione classi

typedef type name

nome: tipo

typedef

Disegna una linea di associazione per la connessione al tipo nome, se possibile.

typedef void (*func)(int)

func: void (*)(int)

typedef

Typedef per i puntatori a funzione. Non viene disegnata alcuna linea di associazione.

In Progettazione classi non viene visualizzato un typedef se il relativo tipo di origine è un puntatore a funzione.

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

MyInt: int

typedef

A

Classe

Disegna una linea di associazione che punta dalla forma del tipo di origine alla forma del tipo di destinazione.

Class B {};

typedef B MyB;

B

Classe

MyB : B

typedef

Se si fa clic con il pulsante destro del mouse su una forma di typedef e si sceglie Mostra come associazione viene visualizzato il typedef o la classe e un Alias di linea che unisce le due forme (simile a una linea di associazione).

typedef B MyB;

typedef MyB A;

MyBar : Bar

typedef

Uguale alla situazione precedente.

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

B

Classe

MyB : B

typedef

A

Classe

MyB è una forma di typedef nidificata.

#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

Progettazione classi non supporta la visualizzazione di questo tipo di relazione mediante un comando del menu di scelta rapida.

#include <vector>

Typedef MyIntVect std::vector<int>;

Class MyVect : MyIntVect {};

std::vector<T>

Classe

MyIntVect : std::vector<int>

typedef

MyVect

Classe

-> MyIntVect

Vedere anche

Concetti

Utilizzo del codice Visual C++ in Progettazione classi

Riferimenti

typedef Specifier