cout没有命名类型

时间:2013-03-16 23:51:07

标签: c++

我是c +的新手,而且我正处于“hello world”计划中并且我一直收到错误

“cout”没有命名我在Ubuntu上使用geany的类型,如果这有所不同,这是我的代码:

#include <iostream>

int main ()
{
extern cout << "hello world!";
    return 0;
}

我不想提出新问题所以我要在这里添加

随着提供的修订版,它将立即编译,但是当我运行程序时,我收到错误

./geany_run_script.sh: 5: ./geany_run_script.sh: ./hello: not found

有关于此的任何想法吗?

2 个答案:

答案 0 :(得分:3)

extern更改为std::。第一个问题是extern仅在类型名称之前有效,因此这就是编译器所抱怨的内容。第二个是cout在命名空间std中定义,所以你需要告诉编译器看那里。好处是代码没有说using namespace std;

答案 1 :(得分:1)

变化:

extern cout << "hello world!";

std::cout << "hello world!";  // You probably want \n on the end.

这是因为cout是在命名空间std中定义的对象。因此,您需要让编译器通过在std::前添加前缀来知道在哪里找到它。有几种替代技术,但在我看来这是最好的。

备选方案一:使用using directive

using std::cout;
cout << "hello world!";

using std::cout;告诉编译器我们想在本地使用std中有一个名为cout的对象,它被带入当前上下文,从而允许您直接使用它。