我得到所有这些错误消息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’
Run Code Online (Sandbox Code Playgroud)
按照这个建议,一切都很好.现在我很好奇,为什么我必须那样做.我们之前在类中使用过C++,但是我从来没有std::
在任何这些命令之前写过.这个系统可能有什么不同?
Fat*_*ror 121
您的班级可能一直在使用预标准C++.一个简单的方法就是看看你的旧程序并检查,你看到了:
#include <iostream.h>
Run Code Online (Sandbox Code Playgroud)
要么
#include <iostream>
Run Code Online (Sandbox Code Playgroud)
前者是预先标准的,你可以只说cout
而不是std::cout
没有任何额外的东西.您可以通过添加在标准C++中获得相同的行为
using std::cout;
Run Code Online (Sandbox Code Playgroud)
要么
using namespace std;
Run Code Online (Sandbox Code Playgroud)
无论如何,只有一个想法.
Mat*_*ton 24
在C++标准中,cout
是在std
命名空间中定义的,因此您需要说std::cout
或放
using namespace std;
Run Code Online (Sandbox Code Playgroud)
在你的代码中,以获得它.
然而,情况并非总是如此,并且过去cout
只是在全局命名空间中(或者,稍后在全局命名空间中std
).因此,我的结论是您的类使用了较旧的C++编译器.
mfo*_*ini 13
标准模板/ Iostream库中的所有内容都位于名称空间std中.你可能用过:
using namespace std;
Run Code Online (Sandbox Code Playgroud)
在你的课堂上,这就是它的原因.