Udostępnij za pośrednictwem


Przestrzeń nazw dla nazw elementu typedef

Nazwy zadeklarowane za pomocą typedef zajmują ten sam obszar nazw co inne identyfikatory (z wyjątkiem instrukcji etykietowanych).W związku z tym nie mogą używać tego samego identyfikatora jako poprzednio zadeklarowane nazwy, z wyjątkiem deklaracji typu klasy.Rozważmy następujący przykład:

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

Zasady ukrywania nazw, które odnoszą się do innych identyfikatorów rządzą również widocznością nazw zadeklarowanych za pomocą typedef.W związku z tym poniższy przykład jest poprawny w języku 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

Zobacz też

Informacje

typedef — specyfikator