Tipi di classe anonimi
Le classi possono essere anonime, ovvero possono essere dichiarate senza un identificatore. Ciò è utile quando si sostituisce un nome di classe con un typedef
nome, 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. In un codice C, l'uso di typedef
in combinazione con strutture anonime è prevalente.
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 è iValue
possibile accedere usando l'operatore object member-selection (.) come indicato di seguito:
int i = ptv.iValue;
Le classi anonime sono soggette a determinate restrizioni. Per altre informazioni sulle unioni anonime, vedere Unioni. Classi anonime:
Non possono avere un costruttore o un distruttore.
Non può essere passato come argomenti alle funzioni (a meno che il controllo dei tipi non venga sconfitto usando i puntini di sospensione).
Non possono essere restituite dalle funzioni come valori restituiti.
Struct anonimi
Sezione specifica Microsoft
Un'estensione C Microsoft consente di dichiarare una variabile di struttura in un'altra struttura senza assegnarle un nome. Queste strutture annidate vengono chiamate strutture anonime. Il linguaggio C++ non consente strutture anonime.
È possibile accedere ai membri di una struttura anonima come se fossero membri della struttura contenitore.
// anonymous_structures.c
#include <stdio.h>
struct phone
{
int areacode;
long number;
};
struct person
{
char name[30];
char gender;
int age;
int weight;
struct phone; // Anonymous structure; no name needed
} Jim;
int main()
{
Jim.number = 1234567;
printf_s("%d\n", Jim.number);
}
//Output: 1234567
Fine sezione specifica Microsoft
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per