为什么eclips不知道我代码中的cout和cin
why does not eclips know cout and cin in my code?
我是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>
相关文章:
- 为什么 printf 在 C++ 中的执行速度比 cout 快?另外scanf比cin慢,为什么?
- 使用 CIN COUT 显示垃圾值的文件对象?
- 当我们声明 cin 为 int 并从 cin 中获取输入并在 cout 中打印 cin 时会发生什么?
- 为什么我的 cout 一次执行,尽管 cin 应该在两者之间读取?
- 两个 cin / cout 语句合并为一个
- 防止 cin、cout、cerr 被实例化
- 无法让我了解 cin.get 和 cout 在这里的工作方式
- 使用 std::endl 与 "n" 当 cin 和 cout 被解绑时
- CIN 和 COUT 如何在以下程序中工作
- 使用自定义宏来简化 cin 和 cout 语句等内容被认为是更好还是更差
- 使用 CIN 和 COUT 在 C++ 中声明基本数据类型
- Cin和Cout在构造函数中
- 要求使用cout/cin进行有效输入
- cout/cin没有命名类型错误
- cout/cin 不读取或打印
- 为什么在这种情况下"printf scanf"比"cout cin"慢?
- 由于cout<<cin.rdbuf()导致的无限循环,为什么?
- 何时使用printf/scanf与cout/cin
- "<<" 和 ">>" 在 cout/cin 的C++中是什么意思?
- 在c++中重载IO操作符时使用cout/cin