Поделиться через


Пространство имен имен typedef

Имена, объявленные с помощью typedef займите ту же пространство имен, что и другие идентификаторы (за исключением меток выписки).Поэтому они не могут использовать один и тот же идентификатор, что и ранее, объявленное имя, за исключением объявления типа класса.Рассмотрим следующий пример:

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

Имя-скрывая правила, которые относятся к другим идентификаторам также управляют областью видимости имен, объявленных с помощью typedef.Поэтому в следующем примере допустим в 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

См. также

Ссылки

описатель typedef