c++在什么时候需要在头文件下输入 use std::cout use什么什么等命令?

 我来答
FrankHB1989
2010-09-08 · TA获得超过4.2万个赞
知道大有可为答主
回答量:4569
采纳率:100%
帮助的人:3140万
展开全部
1.关键字拼写错误,是using,不是use。
2.using有两个用法,一种是using指令,如using namespace std;;另外一种是using声明,如using std::cout。
3.在using声明后,使用名称前不必加上命名空间前缀。例如std::cout如果不经过using声明的话,直接使用cout就可能会出现未定义标识符的编译错误,因为编译器认为std::cout和cout是两个不同的名称,std::cout经过声明所以可以被引用,cout没有声明直接引用的话违反了“先声明后引用”的规则。
4.using指令的作用是引入命名空间中所有已经声明的名称,效果上相当于对被using的namespace中已经声明的每个名称使用一次using声明,例如using namespace std;相当于using std::cout;和以及其它所有“using std::名称;”这样形式的声明的总和,只要在这条using namespace之前已经在头文件或其它地方声明过,像cout、cin、max等名称,只要包含了对应的头文件(内有std::cout、std::cin、std::max等声明),就可以直接引用,无需在前面加上std::。
4.using声明和指令引入的名称作用域从using处开始,结束处则是和using本身所在的位置相关的,在函数内就是到函数结束,在语句块内就是语句结束,在全局则是编译单元(源文件)结束。要注意头文件会被编译每个编译单元时各自包含。在源文件的全局范围内使用using,只会影响这个源文件本身;在头文件中的全局范围内使用,则会影响到所有包含这个头文件的源文件。所以头文件内使用的using(尤其是using指令)更容易造成命名空间污染,可能会造成重定义等莫名其妙的错误。
5.结论是尽可能不在头文件的全局范围内使用using,除非确保这个头文件只被一个源文件包含,但这样头文件就没什么必要存在了(直接把代码写在源文件里更方便)。
6.在源文件内可以使用using,但最好不要声明和被using的的名称重名的实体,这样会造成歧义(命名空间污染的一个极端情况),反而需要明确std::之类的命名空间前缀,白using了;要么就干脆不要使用using。例如http://zhidao.baidu.com/question/178309120.html,using namespace std;后还定义了函数模板swap,结果模板解析时产生编译错误。这个时候需要用::swap指定自定义的全局命名空间中的swap,用std::swap指定标准库中的swap,反而不如不using来的方便。
====
[原创回答团]

参考资料: 原创

Zor_X_Liu
2010-09-08 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:125万
展开全部
头文件最好不要用use,这样有可能会让主程序文件的名称空间混乱的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wmn318
2010-09-08 · TA获得超过201个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:191万
展开全部
#include<iostream>下吧
其实你直接在一开始加上:use namespace std;就可以不用这么写了,这是利用标准命名空间的意思
std::cout 是表示这个命名空间里的一个对象
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
墨夷忆之0Ga5af
2010-09-08 · 超过24用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:0
展开全部
如果你不声明std这个命名空间 还要使用cout那就必须加上std::
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式