为了账号安全,请及时绑定邮箱和手机立即绑定

当c++头文件中同时<iostream>和<stdlib.h>时,使用using namespace std, std表示谁的命名空间?

当c++头文件中同时<iostream>和<stdlib.h>时,使用using namespace std, std表示谁的命名空间?

C++
慕设计2146865 2018-05-24 12:51:21
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

首先要指出,C++ 中根本就不应该使用<stdlib.h>!

C++ 从 C 标准库中继承了一些内容,但 C++ 标准并没有直接使用 C 版本的头文件。如同 C++ 标准库头文件都没有 .h 扩展名一样,C++ 版的 C 标准库头文件也没有扩展名,并且还文件名前面加上字母 c 作为标识。所以 C 中的 <stdlib.h> 在 C++ 中应该是 <cstdlib>。  不应该混用 C/C++ 的头文件!


std 就是一个具名命名空间的名字。C++ 标准库中的内容都在 std 这个命名空间中,也就是说 C++ 标准库的所有头文件中都声明了 std 命名空间。好像你不应该理解为“谁的命名空间”,而是“std 命名空间存在于所有 C++ 标准库头文件中”。

那么:

  • 如果你问“当c++头文件中同时<iostream>和<stdlib.h>时......”

    我只能说,stdlib.h 就不是 C++ 合法的头文件,其中根本就没有命名空间这个概念(C语言中不存在这个),所以 using namespace std 这个指令就允许你直接使用 iostream 头文件中的内容,不需要用 std:: 来指定命名空间。

  • 如果你问“当c++头文件中同时<iostream>和<cstdlib>时......”

    那使用 using namespace std 后你就可以直接使用这两个头文件中的内容了...

查看完整回答
1 反对 回复 2018-05-24
?
慕设计2146865

TA贡献1条经验 获得超0个赞

感谢两位的回答

查看完整回答
反对 回复 2018-06-01
?
慕田峪3667243

TA贡献4条经验 获得超3个赞

iostream

查看完整回答
反对 回复 2018-05-24
  • 3 回答
  • 0 关注
  • 1610 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信