Freigeben über


Namespace von typedef-Namen

Namen, die mithilfe von typedef deklariert werden, nehmen den gleichen Namespace ein wie andere Bezeichner (außer Anweisungsbezeichnungen). Deshalb können sie nicht den gleichen Bezeichner wie ein zuvor deklarierter Name verwenden. Nur in einer Klassentypdeklaration ist dies möglich. Betrachten Sie das folgende Beispiel:

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

Die Ausblendregeln für Namen, die andere Bezeichner betreffen, bestimmen außerdem die Sichtbarkeit von Namen, die mit typedef deklariert wurden. Deshalb ist das folgenden Beispiel in C++ zulässig:

// 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

Siehe auch

Referenz

typedef-Spezifizierer