疯狂的基本c ++错误

时间:2011-05-19 07:41:02

标签: c++ compiler-errors

有人能解释为什么Codeblocks会给我这些错误吗?:

error: ISO C++ forbids declaration of 'cout' with no type
error: invalid use of '::'
error: expected ';' before '<<' token
error: '<<x>>' cannot appear in a constant-expression      // <<x>> is many different variable names

我的代码简单如下:

#include <iostream>
#include "myclass.h"

int main(){
   std::string data;
   std::string e;

   e = myclass().run(data);
   std::cout << e << std::endl;

   return 0;
}

世界上发生了什么?

编辑:是的,我确实有iostream。对不起早点把它放在那里

5 个答案:

答案 0 :(得分:11)

添加

#include <iostream>

std::cout位于此标题内


编辑:关于你的编辑 - 这意味着问题肯定是在myclass.h内或者有一些代码,这里没有显示。

答案 1 :(得分:3)

#include <string>怎么样?

没有它(和以下代码)

#include <iostream>

int main(){
   std::string data;
   std::string e;

   std::cout << e << std::endl;

   return 0;
}

我的g ++报告:

tst.cpp: In function `int main()':
tst.cpp:4: undeclared variable `string' (first use here)
tst.cpp:4: parse error before `;'
tst.cpp:5: parse error before `;'
tst.cpp:7: `e' undeclared (first use this function)
tst.cpp:7: (Each undeclared identifier is reported only once
tst.cpp:7: for each function it appears in.)

答案 2 :(得分:2)

您应该加入<iostream>

答案 3 :(得分:2)

您是否在某处包含<iostream>

知道您已添加<iostream>

后编辑

你可以查一下:

  • #include <string>
  • 如果您的班级定义以分号结束

如果一切正常,我想检查你的myclass.h: - (

答案 4 :(得分:1)

您发布的代码(使用EDIT)是正确的。必须有 在myclass.h中发生了一些有趣的事情。 (也许是

#define std

,以便编译器看到::cout。)

您可能想要查看预处理器输出: Unix下的编译器选项-E,Visual Studio的/E。它 将是浩繁的,但你感兴趣的只是最后10个 左右线;预处理器对您的代码做了什么。