命名空间的using声明

时间:2021-11-23 05:16:50

using声明具有如下的形式:

using namespace::name;

 一旦声明了上述语句,就可以直接访问命名空间中的名字:

#include<iostream>
//using声明,当我们使用名字cin时,从命名空间std中获取它
using std::cin;

int main()
{
    int i;
    cin >> i;//正确:cin和std::cin含义相同
    cout << i;//错误:没有对应的using声明,必须使用完整的名字
    std::cout << i;//正确:显式地从std中使用cout
    return 0;
}

每个名字都需要独立的using声明

 按照规定,每个using声明引入命名空间中的一个成员:

#include<iostream>
using std::cin;
using std::cout; using std::endl;
int main()
{
    cout << "Enter two numbers:" << endl;
    int v1, v2;
    cin >> v1 >> v2;
    cout << "The sum of" << v1 << " and " << v2
        << " is " << v1 + v2 << endl;
    return 0;
}

 一开始就有对cin、cout和endl的using声明,这意味着我们不再添加std::形式的前缀就能直接使用它们。

头文件不应包含using声明

头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using声明,那么每个使用了该头文件的文件都会有整个声明。