【发布时间】:2012-06-12 14:03:51
【问题描述】:
我收到所有cout 和endl 的这些错误消息:
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::。这个系统可能有什么不同?
【问题讨论】:
-
你必须说你正在使用 std 让它知道 cout 是什么。如果您将其作为导入执行,则可以简单地说 cout,否则您必须充分证明它的合理性才能告诉编译器 cout actuallt 是什么
-
恭喜,你是导入
std命名空间的愚蠢习惯的第 1000000 个受害者,我见过的每一门 C++ 入门课程似乎都采用了这种愚蠢的习惯...... -
抱歉 Luc,使用语言
进行编码并不仅限于正在听有关该语言的入门课程的一小部分人。 -
@erikb85 我认为他的投诉是针对那些没有参加课程的人!
-
@EdwardBlack 相反,使用命名空间
std也不错。导入它包含的所有名称(使用using namespace std指令)只是为了避免输入std::前缀是不好的,因为这违背了命名空间的目的。 (见this faq)。我 3 岁时的咆哮是针对 C++ 入门课程和系统地做到这一点的示例,从而向 C++ 学习者灌输坏习惯。