对于在 C++ 中使用标准库函数,其头文件和 std 命名空间之间到底是什么关系?

For using a standard library function in C++, what exactly is the relationship between its header file and std namespace?

提问人:Aman_666 提问时间:7/18/2021 更新时间:7/18/2021 访问量:93

问:

在 C++ 中,既然命名空间 std 包含了所有标准库函数的声明,那么为什么我们需要包含 iostream 标头才能使用 I/O 函数。我们能不能只写“using namespace std”,以便编译器知道从哪里获取定义?我想知道如果该函数声明已经存在于 std 命名空间中,那么是否还需要包含一个头文件来使用字符串等任何功能。

C++ 命名空间 std 头文件 iostream

评论

1赞 mightyWOZ 7/18/2021
这回答了你的问题吗?C++ 命名空间和 包括
0赞 fabian 7/18/2021
相关问题 stackoverflow.com/questions/31816095/...顺便说一句:具有与包含完全不同的效果;它只是改变了您引用现有符号的方式。即使没有,您也可以参考使用全名。如果你问为什么符号在默认情况下没有 include 就不可用:这是 C 诞生时做出的设计决定......那时,电脑的表现比现在要差得多。using namespace xyz;using namespace std;coutstd::cout

答:

0赞 Caglayan DOKME 7/18/2021 #1

编译器在包含的标头中查找声明的命名空间。它无法知道从哪里获取定义,除非您不通过包含库来指定它。std