为什么eclips不知道我的代码中的cout和cin?

时间:2012-07-29 01:00:29

标签: c++

我是c ++的新手,我想用eclipse编写我的程序,但它不知道cout和cin但是我添加了包含 这是我的代码:

class READY {
public:
READY();
virtual ~READY();
#include <iostream.h>
int main (){
cout<<"hello";
 }


 };

#endif /* READY_H_ */

3 个答案:

答案 0 :(得分:5)

将包含和main移到课堂外,并使用cout限定std::

#include <iostream>

class READY {
public:
  READY();
  virtual ~READY();
};


int main (){
  std::cout<<"hello";
}

C ++不是Java,main驻留在全局范围内,而不是作为类成员。

此外,它是<iostream>,而不是<iostream.h>

无论你学习什么教程或书籍......都没有任何好处。

答案 1 :(得分:2)

您需要将#include放在文件的顶部;包括在类中间的标题会做奇怪,奇怪的事情!至少,它会将标题中的所有名称嵌入到您的班级中;最有可能的是,它无法编译。

此外,现代C ++将标准库中定义的cout和基本上所有其他符号放入名为std的命名空间中,因此您需要编写std::cout或“使用命名空间std” ;”在您的课程定义之前,但在#include.

之后

答案 2 :(得分:1)

您的代码存在一些问题:

  • #include语句必须在类声明之外。最好将它们放在文件的顶部,而不是将它们分散到整个文件中,因为通过观察文件的顶部而不是搜索整个文件的#includes,可以更容易地检查代码中的依赖项。
  • 您的main()函数也必须在类外声明和定义。与Jave相比,C和C ++中的main()是一个独立的函数。
  • 如上所述,cin和cout位于std命名空间中。我建议使用完全限定名称(即std :: cin和std :: cout)引用它们,尽管您可以在函数内部或实现文件中使用using std::cin;using std::cout; < em>在之后全部包括
  • 你包括iostream.h - 这是旧的iostreams库的“错误”文件。标准兼容的iostream的正确包含是<iostream>