Elaborované specifikátory typu
Specifikátor rozpracovaného typu je název typu, který předchází některé z klíčových slov class, struct, enum nebo union.
class identifier
struct identifier
enum identifier
union identifier
Poznámky
Specifikátor rozpracovaného typu se používá pro zdůraznění nebo zobrazení názvu typu, který je skryt deklarací proměnné se stejným názvem ve stejném rozsahu.
Následující příkaz deklaruje identifikátor Window jako název třídy.Tato syntaxe je použita pro dopředné deklarace tříd.Další informace o názvech tříd naleznete v tématu Názvy tříd.
class Window;
Pokud je název deklarován pomocí klíčového slova union, musí být také definováno pomocí klíčového slova union.Názvy, které jsou definovány pomocí klíčového slova class mohou být deklarovány pomocí klíčového slova struct (a naopak).Proto jsou následující ukázky kódu přípustné:
Příklad
// elaborated_type_specifiers1.cpp
struct A; // Forward declaration of A.
class A // Define A.
{
public:
int i;
};
int main()
{
}
// elaborated_type_specifiers2.cpp
class A; // Forward declaration of A
struct A
{
private:
int i;
};
int main()
{
}
// elaborated_type_specifiers3.cpp
union A; // Forward declaration of A
union A
{
int i;
char ch[2];
};
int main()
{
}
Následující příklady jsou však nepřípustné:
// elaborated_type_specifiers4.cpp
union A; // Forward declaration of A.
struct A
{ // C2011
int i;
};
// elaborated_type_specifiers5.cpp
union A; // Forward declaration of A.
class A
{ // C2011
public:
int i;
};
// elaborated_type_specifiers6.cpp
struct A; // Forward declaration of A.
union A
{ // C2011
int i;
char ch[2];
};