C++ 命名空间using声明

 3.1 命名空间的using声明

        入门时期,我们用到的库函数大多属于命名空间std,例如

std::cin//表示从输入中读取内容

        作用域操作符(::)的含义:编译器从左侧名字所示的作用域中找到右侧的名字。

        从而我们可以得知,std::cin的意思就是 使用命名空间std中的名字cin。 

        若一直重复输入就比较繁琐,此时我们可以用到using声明。

using namespace::name;

        using:using声明。

        namespace:命名空间,例如std。

        name:你所需要的名字,例如cin,cout。

#include
using std::cin;
int main()
{
        int i;
        cin>>i;
        cout<

        ^s  保存 ^x 返回(^的意思是ctrl,所以这里是ctrl+s,ctrl+x)

C++ 命名空间using声明_第1张图片

        编译运行后我们可以看到,cout报错了,并且提示我们需要改成std::cout,因为我们没有using std::cout; 

        而下面一行的std::cout<

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

using std::cin;using std::cout;
using std::endl;

        直接使用using namespace std;不太好,因为我们大多使用cin,cout,endl之类的,在std中占很小的一部分。而using namespace std;则是把std中的所有内容都拿过来用了,把很多用不到的内容也一起使用。

        std中有很多名字,如果全部拿过来使用,很有可能会和自己编写的代码发生冲突。

        例如:你原本编写的“英雄联盟”中有伊泽瑞尔了,还直接把“云顶之弈”的代码全部using放到“英雄联盟”的代码中,而“云顶之弈”也有伊泽瑞尔,程序就会出现冲突,有两个重名的函数。

        用到什么就using一下,就可以很大程度的避免冲突。

        头文件中不应包含using声明

        因为头文件的内容会拷贝到所有引用它的文件中,如果头文件里有某个using声明,那么每个使用了该头文件的文件都会出现这个声明。就也有可能发生刚刚说的“伊泽瑞尔”的情况。

更全面的介绍,垂阅此文章(该文章篇幅较长,推荐使用电脑阅读)。

C++ Primer 第三章字符串,向量和数组_WWester的博客-CSDN博客

你可能感兴趣的:(算法)