C++关于std namespace与# include<iostream>关系的有关问题

C++关于std namespace与# include<iostream>关系的问题
版上的大侠们你们好!
我是一名在校的C++初学者,关于namespace std 与# include<iostream>一直有一个问题没有弄懂,就是关于cin、cout等对象定义在哪里的问题。我已经知道的是如果要使用这两个istream、ostream类的对象时,在include中需要包含相应的头文件。而这时又要使用命名空间"using namespace std"的语句,这样说的话cin cout是否没有定义在类似<istream>、<ostream>、<iostream>等头文件中?如果是这样的话,namespace std又是定义在哪里的呢?
我在网页上搜索到有一个说法是std不是统一定义在哪一个具体的头文件中,而是不同的头文件都在向这里面填充内容。不知道这样的说法是否正确?
我也打开过iostream头文件打开,可以里面是一对编译预处理的命令,现在的能力是看不懂了。。。不知道哪位大侠能够从std 与iostream的关系上给以说明!
谢谢各位大侠!

------解决方案--------------------------------------------------------
lz可以看一下iostream中
__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 istream cin;
但是类型istream的定义文件为iosfwd
该文件的开头就有个
_STD_BEGIN
即namespace std {
文件结尾有_STD_END 即}
即使用的istream是定义在std命名空间中
所以使用cin时需要
include <iostream>
using namespace std;
否则编译器在当前的命名空间中无法找到istream的定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值