Compartilhar via


Espaço para nome de typedef nomes

Nomes declarados usando typedef ocupam o mesmo espaço de nome como outros identificadores (exceto rótulos de instrução).Portanto, não podem usar o mesmo identificador como um nome declarado anteriormente, exceto em uma declaração de tipo de classe.Considere o exemplo a seguir:

// typedef_names1.cpp
// C2377 expected
typedef unsigned long UL;   // Declare a typedef name, UL.
int UL;                     // C2377: redefined.

As regras de ocultação de nome que pertencem a outros identificadores também determinam a visibilidade dos nomes declarados usando typedef.Portanto, o exemplo a seguir é legal em C++:

// typedef_names2.cpp
typedef unsigned long UL;   // Declare a typedef name, UL
int main()
{
   unsigned int UL;   // Redeclaration hides typedef name
}

// typedef UL back in scope

Consulte também

Referência

Especificador de TypeDef