#c
#c
Вопрос:
Я создал новый проект на c , но продолжаю получать ту же ошибку
Main.cpp
#include <iostream>
#include <string.h>
#include "Computer.cpp"
#include "Computer.h"
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
Computer.h
#ifndef COMPUTER_H_INCLUDED
#define COMPUTER_H_INCLUDED
#include <string>
class Computer
{
public:
std::string marca;
float prezzo;
bool acceso;
Computer();
void Accenditi();
void Spegniti();
void ImpostaMarca(std::string m);
void ImpostaPrezzo(float p);
};
#endif
Computer.cpp
#include "Computer.h"
Computer::Computer()
{
}
void Computer::Accenditi()
{
if(!acceso)
{
acceso = true;
}
else
{
std::cout << "Sono già acceso";
}
}
void Computer::Spegniti()
{
if(acceso)
{
acceso = false;
}
else
{
std::cout << "Sono già spento";
}
}
void Computer::ImpostaMarca(std::string m)
{
marca = m;
}
void Computer::ImpostaPrezzo(float p)
{
prezzo = p;
}
Проблема
я не понимаю, что не так с Computer.cpp я продолжаю получать «cout не является членом std». Я попытался добавить «использование пространства имен std», а также попытался добавить библиотеку #include, но я получаю новый файл с именем «makefile.win». Как я могу исправить эту ошибку?
Комментарии:
1. Вы не включаете
<iostream>
вComputer.cpp
или какой-либо из его заголовков.std::cout
объявлен в<iostream>
, и это включение необходимо для его работы.2. Вы пытались включить соответствующие заголовки?
3. Примечание: вы не должны включать файл cpp.
4. Обратите внимание, что, хотя все это является частью одного проекта, каждый
.cpp
файл компилируется по отдельности, прежде чем они будут связаны вместе, поэтому, даже если вы включаете его<iostream>
вMain.cpp
, он не будет виденComputer.cpp
, когда настанет его очередь быть скомпилированным. Также вы не должны включать.cpp
файл в другой, как указано. Даже если это скомпилировано, это привело бы к ошибкам компоновщика, потому что у вас одни и те же интерфейсы, реализуемые несколько раз из-за этого цикла включения.
Ответ №1:
Вам необходимо включить заголовок iostream в свой Computer.cpp файл как таковой:
include <iostream>
и чтобы облегчить вам жизнь, вы также можете добавить:
using std::cout;
using std::endl;
в самом низу вашего include, таким образом, вам не нужно каждый раз добавлять «std:: cout», вы можете просто использовать «cout»
Также хочу добавить:
Вы можете удалить включаемый computer.cpp из вашего main.cpp и просто оставьте заголовок. Компоновщик C автоматически свяжет ваш компьютер.h и computer.cpp вместе, поскольку .cpp включает заголовок, а ваш main включает в себя computer.h
Ответ №2:
Добавьте # include <iostream>
в файлы, которые вы используете std::cout
и std::cin
.