using 指令 (C++)
using 指令允许在“命名空间” 中的名称不需要为显示限定符的“命名空间名称”被使用。 当然,完全限定名,仍可用于提高可读性。
using namespace [::] [ nested-name-specifier ] namespace-name
备注
请注意在 using 指令和 使用声明 之间的差别:using 声明允许单个名称使用,而不需要限定, using 指令可以在命名空间中的所有名称使用,无需限定。 这个关键字还被用于 “类型别名”.
如果局部变量和命名空间变量具有相同名称,隐藏命名空间变量。 具有与一个全局变量同名的命名空间变量是一个错误。
备注
将您的 using 指令放在源代码文件的开头,以减少和 IntelliSense 相关的以外行为发生的可能。
std 命名空间
ANSI/ISO C++ 标准在标准库中需要显式声明命名空间。 例如,当使用 iostream 时,必须以下列方式之一指定 cout 的命名空间:
std::cout (explicitly)
using std::cout (using 指令)
using namespace std (using 指令)
/clr
以下示例在 .NET Framework 基类库 namespace 中显示如何允许要使用的名称,而不需 namespace-name 为显式限定符。
// using_directive.cpp
// compile with: /c /clr
using namespace System::Reflection;
[assembly:AssemblyDescriptionAttribute("test")];
示例
// using_directive2.cpp
// compile with: /EHsc
#include <iostream>
int main() {
std::cout << "Hello ";
using namespace std;
cout << "World." << endl;
}