Especificadores elaborados de tipo
Un especificador de tipo elaborado es un nombre de tipo precedido, ya sea por la class, struct, enum, o union palabra clave.
class identifier
struct identifier
enum identifier
union identifier
Comentarios
Un especificador de tipo elaborado se utiliza para enfatizar o para revelar el nombre de tipo que está oculto por la declaración de una variable con el mismo nombre en el mismo ámbito.
La siguiente instrucción declara el Window identificador como un nombre de clase.Esta sintaxis se utiliza para la declaración adelantada de clases.Para obtener más información acerca de los nombres de clase, consulte Los nombres de clase.
class Window;
Si un nombre se declara utilizando la union (palabra clave), también se debe definir utilizando la unión palabra clave.Los nombres que se definen mediante el clase palabra clave se puede declarar utilizando la struct palabra clave (y viceversa).Por lo tanto, los ejemplos de código siguientes son válidos:
Ejemplo
// 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()
{
}
Los ejemplos siguientes, sin embargo, no son válidos:
// 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];
};