今天我看到了C ++命名空间,我遇到了问题。 编译器对命名空间做了什么? 例如: 我们写
#include<iostream>
using namespace std;
然后问题来了,iostream
文件和namespace std
之间的关系是什么? {(1}}在哪个文件中定义了什么?当我使用std
时,我知道编译器会将来自iostream.h的声明从“cout”,“cin”.etc带到我的cpp文件。
答案 0 :(得分:3)
阅读本文,它解释了名称空间 http://www.cplusplus.com/doc/tutorial/namespaces/
答案 1 :(得分:0)
<iostream>
包含namespace
std
中的内容。您可以将命名空间视为方法,类定义和变量的分组。使用命名空间可以更容易按功能分组。
using
指令只导入全局命名空间中命名空间的所有内容。但你不必使用它:
您可以使用:
using namespace std;
cout << "whatever";
或
std::cout << "whatever";
原因是编译器不知道命名空间之外的cout
。
将其视为声明:
//file <iostream>
namespace std
{
//declaration of cout
}
//file <vector>
namespace std
{
//declaration of vector
}
答案 2 :(得分:0)