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;
}