Anonymní typy třídy
Třídy mohou být anonymní, tedy mohou být deklarovány bez identifikátoru.Tato možnost je užitečná při nahrazení názvu třídy názvem typedef, stejně jako následující:
typedef struct
{
unsigned x;
unsigned y;
} POINT;
[!POZNÁMKA]
Použití anonymních tříd uvedené v předchozím příkladu je užitečné pro zachování kompatibility s existujícím kódem jazyka C.V některých kódech jazyka C převládá použití typedef ve spojení s anonymními strukturami.
Anonymní třídy jsou také užitečné, pokud chcete odkazovat člena třídy, jako by nebyl obsažen v samostatné třídě, jako v následujícím příkladu:
struct PTValue
{
POINT ptLoc;
union
{
int iValue;
long lValue;
};
};
PTValue ptv;
V předchozím kódu lze k proměnné iValue přistupovat pomocí operátoru výběru členů objektu (.) takto:
int i = ptv.iValue;
Na anonymní třídy se vztahují jistá omezení. (Další informace o anonymních sjednoceních naleznete v tématu Sjednocení.) Anonymní třídy:
Nemohou mít konstruktor a destruktor.
Nelze je předat jako argumenty funkcím (pokud není zrušena kontrola typu pomocí operátoru tři tečky).
Nelze je vrátit jako návratové hodnoty funkcí.