如何解决“未在此范围内声明cout”错误?

时间:2019-11-05 13:46:25

标签: c++ scope header namespaces declaration

只是一个简单的程序,但是谁能指出发生此错误的原因,(我使用的是dev C ++版本5.11)

#include <stdio.h>
#include <conio.h>

class animal
{
 public :
    void sound();

     void eat() ;

};
void animal::eat()
{
        cout<<"i eat animal food" ; 


}


void animal::sound()
{
        cout<<"i sound like an animal" ;

     }

void main()
{
    animal a ;
    a.sound()
    a.eat()
    getch()
}

错误来了,像这样:

In member function 'void animal::eat()':
15  4   C:\Users\chetna\Documents\Untitled1.cpp [Error] 'cout' was not declared in this scope
1   0   C:\Users\chetna\Documents\Untitled1.cpp In file included from C:\Users\chetna\Documents\Untitled1.cpp

2 个答案:

答案 0 :(得分:3)

至少您必须包括

#include <iostream>

using namespace std;

名称cout在命名空间std中声明。因此,要么使用上面显示的using指令,要么使用一个限定名称(更好),例如

std::cout<<"i eat animal food" ; 

另一种方法是使用using声明。例如

#include <iostream>

using std::cout;

//...
void animal::eat()
{
        cout<<"i eat animal food" ; 
}

并删除此指令

#include <stdio.h>

还放置分号

a.sound();
a.eat();
getch();

请注意,函数main的声明应类似于

int main()

答案 1 :(得分:0)

请停止使用旧的Borland C ++等。

改用符合现代标准的C ++编译器(g ++,clang,Microsoft Visual Studio)。

请勿使用conio.h,它是一个非常古老的编译器特定库,而不是标准库。

不要使用stdio.h,它不是一个不好的库,但是它声明了几个C函数,而不是C ++函数。

将主要功能声明为

int main()

不是void main(),因为标准C ++需要main函数返回一个int(成功为0)。

使用cout代替使用std::cout,因为它是表示std命名空间中定义的标准输出的对象。