|
如果您以前看过 C++ 代码,您可能已经看到被使用而不是 .两者都命名同一个对象:第一个对象使用其非限定名称 (),而第二个对象直接在命名空间 (as ) 中限定它。
是标准库的一部分,标准 C++ 库中的所有元素都在所谓的命名空间中声明:命名空间。
为了引用命名空间中的元素,程序应该限定库元素的每一次使用(就像我们通过前缀 和 所做的那样),或者引入其组件的可见性。引入这些组件可见性的最典型方法是使用声明:coutstd::coutcoutstdstd::coutcoutstdstdcoutstd::
1
using namespace std;
上面的声明允许以非限定的方式(不带前缀)访问命名空间中的所有元素。
考虑到这一点,可以重写最后一个示例,以不限定地使用 as:stdstd::cout
// my second program in C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World! ";
cout << "I'm a C++ program";
}
Hello World! I'm a C++ program
在 cpp.sh 上编辑和运行
访问命名空间元素的两种方法(显式限定和使用声明)在 C++ 中都有效,并产生完全相同的行为。为简单起见,并提高可读性,这些教程中的示例将更频繁地使用后一种方法来使用声明,但请注意,显式限定是保证永远不会发生名称冲突的唯一方法。
|
|