C++入门(命名空间)

C++中的命名空间

做题的时候经常看见C++中有一行:using namespace std;

不是很明白,就去网上查了一查,写下这篇博文大致解释一下。

1. 命名空间的由来

​ C++中如果有必须的标识重名了,那么该如何区分它们?为了处理这样的情况,引入namespace的概念,将重名的标识名,分别放入不同的namespace中,以区别使用。

2. 使用std中的标识

方式1——空间名::标识名

#include <iostream>
int main(){
	std::cout<<"Hello World"<< std::endl;
    return 0;
}

方式2——using namespace std;

#include <iostream>
using namespace std;//引入命名空间

int main(){
    cout << "Hello World" << endl;//等价于上一行
    return 0;
}

我们可以发现输出是相同的,
也就是说在using namespace std之后,std中的内容我们可以直接使用,而不用在前面加上std::XXX【有作用域的】

3. 模拟

我们可以举一个例子,自己设置空间的内容,来模拟一下

#include<iostream>
using namespace std;
namespace a
{
    int b=5;
}
namespace c
{
    int b=8;
}

namespace d
{
    int b=9;
}

int main()
{
    int b=9;
    cout << d::b << " " << a::b << " " << c::b << endl;
    using namespace d;
    cout << b << endl;
    return 0;
}

结果输出:
9 5 8
9

原文地址:https://www.cnblogs.com/Hokkaido-JL/p/13877487.html