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

why does not eclips know cout and cin in my code?

本文关键字:cout cin 代码 eclips 不知道 为什么      更新时间:2023-10-16

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

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

 };
#endif /* READY_H_ */

将include和main移到类外,并用std:::限定cout

#include <iostream>
class READY {
public:
  READY();
  virtual ~READY();
};

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

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

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

无论你在学什么教程或书。。。这一点都不好。

您需要将#include放在文件的顶部;在类的中间包含头会做一些奇怪的事情!至少,它会将头中的所有名称嵌入到类中;很可能,它只是编译失败。

此外,现代C++将cout和标准库中定义的其他所有符号放入一个名为std的名称空间中,因此您需要编写std::cout,或者在类定义之前放入"using namespace std;",但在#include. 之后

您的代码有几个问题:

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