Freigeben über


using-Direktive (C++)

Die using-Direktive ermöglicht die Verwendung der Namen in namespace ohne namespace-name als expliziter Qualifizierer. Natürlich kann der vollständige, qualifizierte Name immer noch verwendet werden, um die Lesbarkeit zu verbessern.

using namespace [::] [ nested-name-specifier ] namespace-name

Hinweise

Beachten Sie den Unterschied zwischen der using-Direktive und der using-Deklaration: Die using-Deklaration ermöglicht die Verwendung eines einzelnen Namens ohne Qualifizierung, und die using-Direktive ermöglicht die Verwendung aller Namen in einem Namespace ohne Qualifizierung. Dieses Schlüsselwort wird auch für Typaliase verwendet.

Wenn eine lokale Variable denselben Namen wie eine Namespacevariable besitzt , wird die Namespacevariable ausgeblendet. Es ist ein Fehler, wenn eine Namespacevariable mit dem gleichen Namen wie eine globale Variable vorliegt.

Hinweis

Platzieren Sie Ihre using-Direktive an den Anfang der Quellcodedatei, um das Potenzial für unerwartetes Verhalten mit IntelliSense zu reduzieren.

Der Namespace "std"

Aufgrund des ANSI/ISO C++-Standards müssen Sie den Namespace in der Standardbibliothek explizit deklarieren. Wenn Sie beispielsweise "iostream" verwenden, müssen Sie den Namespace von cout auf eine der folgenden Weisen angeben:

  • std::cout (explicitly)

  • using std::cout (using-Deklaration)

  • using namespace std (using-Direktive)

/clr

Im folgenden Beispiel wird die Vorgehensweise dargestellt, um Namen in einer .NET Framework-Basisklassenbibliothek namespace ohne namespace-name als expliziter Qualifizierer verwenden zu können.

// using_directive.cpp
// compile with: /c /clr
using namespace System::Reflection;
[assembly:AssemblyDescriptionAttribute("test")];

Beispiel

// using_directive2.cpp
// compile with: /EHsc
#include <iostream>

int main() {
   std::cout << "Hello ";
   using namespace std;
   cout << "World." << endl;
}
  

Siehe auch

Referenz

Namespaces (C++)

C++-Schlüsselwörter