Tipi di classe anonimi
Le classi possono essere anonime, ovvero possono essere dichiarate senza identifier. Ciò si rivela utile quando si sostituisce il nome di una classe con un nome typedef, come illustrato di seguito:
typedef struct
{
unsigned x;
unsigned y;
} POINT;
Nota
L'utilizzo di classi anonime illustrato con l'esempio precedente è utile per preservare la compatibilità con il codice C esistente.Il alcuni codici C, è diffuso l'utilizzo di typedef insieme alle strutture anonime.
Le classi anonime sono utili anche quando si desidera che un riferimento al membro di classe venga visualizzato come se non fosse contenuto in una classe separata, come illustrato di seguito:
struct PTValue
{
POINT ptLoc;
union
{
int iValue;
long lValue;
};
};
PTValue ptv;
Nel codice precedente, è possibile accedere a iValue utilizzando l'operatore di selezione dei membri dell'oggetto (.) come descritto di seguito:
int i = ptv.iValue;
Le classi anonime sono soggette a determinate restrizioni. Per ulteriori informazioni sulle unioni anonime, vedere Unioni. Le classi anonime:
Non possono avere un costruttore o un distruttore.
Non possono essere passate come argomenti alle funzioni (a meno che il controllo dei tipi non venga aggirato utilizzando i puntini di sospensione).
Non possono essere restituite dalle funzioni come valori restituiti.