首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么是std::cout而不是简单的cout?

为什么是std::cout而不是简单的cout?
EN

Stack Overflow用户
提问于 2012-06-08 21:47:00
回答 7查看 190.6K关注 0票数 65

我收到所有coutendl的错误消息

代码语言:javascript
复制
main.cc:17:5: error: ‘cout’ was not declared in this scope
main.cc:17:5: note: suggested alternative:
/usr/include/c++/4.6/iostream:62:18: note:   ‘std::cout’

按照建议操作后,一切都很好。现在我很好奇,为什么我必须这么做。我们以前在类中使用过C++,但我从来没有在这些命令之前编写过std::。这个系统可能会有什么不同?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-06-08 21:49:39

似乎您的类可能一直在使用准标准C++。一种简单的判断方法是查看您的旧程序并检查,您是否看到:

代码语言:javascript
复制
#include <iostream.h>

代码语言:javascript
复制
#include <iostream>

前者是准标准的,您可以只说cout而不是std::cout,而不需要任何额外的东西。您可以在标准C++中添加以下内容来获得相同的行为

代码语言:javascript
复制
using std::cout;

代码语言:javascript
复制
using namespace std;

不管怎样,只有一个想法。

票数 127
EN

Stack Overflow用户

发布于 2012-06-08 21:49:12

在C++标准中,cout是在std名称空间中定义的,因此您需要指定std::cout或put

代码语言:javascript
复制
using namespace std;

在你的代码中,为了得到它。

然而,情况并不总是这样,在过去,cout只是在全局名称空间中(或者后来,在全局和std中)。因此,我可以得出结论,您的类使用的是较旧的C++编译器。

票数 24
EN

Stack Overflow用户

发布于 2012-06-08 21:48:03

标准模板/Iostream库中的所有内容都驻留在命名空间std中。您可能已经使用过:

代码语言:javascript
复制
using namespace std;

在你的课堂上,这就是为什么它有效。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10950083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档