对于所有的 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
命名空间。 - Luc Touraillestd
并不是坏事,相反地,使用它是好的。但是,仅仅为了避免输入std::
前缀而导入它所包含的所有名称(使用using namespace std
指令),这样做是错误的,因为这违背了命名空间的本意。(参见这个FAQ)。我三年前的抱怨是针对那些在C++入门课程和示例中系统地这样做,并因此灌输C++学习者不良习惯。 - Luc Touraille