Как я могу решить ошибку "cout не был объявлен в этой области"? - PullRequest
1 голос
/ 05 ноября 2019

просто простая программа, но кто-нибудь может указать, почему происходит эта ошибка (я использую 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 ]

3 голосов
/ 05 ноября 2019

По крайней мере, вы должны включить

#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()
0 голосов
/ 05 ноября 2019

Пожалуйста, прекратите использовать старый Borland C ++ et al.

Вместо этого используйте совместимый с современными стандартами компилятор C ++ (g ++, clang, Microsoft Visual Studio).

Не используйте conio.h, это очень старая библиотека, специфичная для компилятора, а не стандартная.

Не используйте stdio.h. Это не плохая библиотека, но она объявляет несколько функций C, а не C ++.

Объявите вашу основную функцию как

int main()

not void main(), поскольку стандартному C ++ требуется, чтобы функция main возвращала int (0 для успеха).

Вместо использования cout используйте std::cout, поскольку это объект, представляющий стандартный выводопределено внутри пространства имен std.

...