Utilizzo di typedef con i tipi di classe
Utilizzo di typedef l'identificatore con i tipi di classe è supportato in gran parte a causa della pratica ANSI C di dichiarazione delle strutture senza nome in typedef dichiarazioni.Ad esempio, molti programmatori c# utilizzano le operazioni seguenti:
// typedef_with_class_types1.cpp
// compile with: /c
typedef struct { // Declare an unnamed structure and give it the
// typedef name POINT.
unsigned x;
unsigned y;
} POINT;
Il vantaggio di questo tipo di dichiarazione consente inoltre di dichiarazioni quali:
POINT ptOrigin;
anziché:
struct point_t ptOrigin;
In C++, la differenza tra typedef nomi e tipi reali (dichiarati con classe, struct, unionee enum le parole chiave) è più distinte.Sebbene la pratica c# della relativa dichiarazione senza nome in un oggetto typedef dell'istruzione può inoltre, non fornisce alcun vantaggio di annotazione e in c#.
// typedef_with_class_types2.cpp
// compile with: /c /W1
typedef struct {
int POINT();
unsigned x;
unsigned y;
} POINT;
Nell'esempio precedente viene dichiarata una classe denominata POINT utilizzando la classe senza nome typedef sintassi.POINT viene trattato come nome di classe, tuttavia, le restrizioni seguenti si applicano ai nomi di introdotto nel modo seguente:
Il nome descrittivo di un sinonimo non può apparire dopo un oggetto classe, struct, o unione prefisso.
Il nome può essere utilizzato come nomi del distruttore o del costruttore all'interno della dichiarazione di classe.
In breve, questa sintassi non fornisce alcun meccanismo per l'ereditarietà, costruzione, o la distruzione.