Я очень плохо знаком с программированием на C ++ и слежу за книгой по C ++ Primer 5th Edition.Существует упражнение, требующее объекта «Sales_item», который предоставляется в виде файла заголовка.Срок действия ссылки истек, поэтому я получил код от GitHub и сам сохранил его в виде файла заголовка (.h).Я использую Code :: Blocks IDE и сохранил файл Sales_item.h в том же каталоге, что и файл моего проекта.Когда я снова открыл проект, CodeBlocks автоматически создал папку «header» в рабочей области с файлом Sales_item внутри.Я добавил его в начало моего текущего проекта и скомпилировал, просто чтобы убедиться, что он работает:
#include <Sales_item.h>
, но он возвращает ошибку и не скомпилируется.
Тело программы на самом деле не кажется важным;на самом деле он ничего не делает, только для тестирования, компилируется и работает нормально, если я удалю заголовочный файл из рабочей области.Я попытался повторно загрузить код из GitHub по другому (надеюсь лучше) соединению в Uni и сохранить файл и переместить файл заголовка в разные места в папках bin и obj рабочей области.Сообщения об ошибках могут указывать на то, что я не использую C ++ 11?Я был под впечатлением, учитывая, что это была IDE, рекомендованная в видео от 2018 года, и книга предполагает, что код - C ++ 11.Я не совсем уверен, как проверить.Я уверен, что это простая проблема, которую я просто не знаю, как исправить.Сообщения об ошибках при компиляции включают '#include, а также указывают внутри самого файла Sales_item.h, и включают 3 ошибки и 3 предупреждения (включены ниже).
#include <iostream>
#include <Sales_item.h>
using namespace std;
int main()
{
int num1 = 2;
int num2 = 3;
std::cout << num1 + num2 << std::endl;
return 0;
}
||=== Build: Debug in C++PrimerWork (compiler: GNU GCC Compiler) ===|
Documents\C++ Projects\C++Primer\C++PrimerWork\main.cpp|2|fatal error: Sales_item.h: No such file or directory|
Documents\C++ Projects\C++Primer\C++PrimerWork\Sales_item.h|56|warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11|
Documents\C++ Projects\C++Primer\C++PrimerWork\Sales_item.h|70|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11|
Documents\C++ Projects\C++Primer\C++PrimerWork\Sales_item.h|71|warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11|
Documents\C++ Projects\C++Primer\C++PrimerWork\Sales_item.h|45|error: constructor required before non-static data member for 'Sales_item::units_sold' has been parsed|
Documents\C++ Projects\C++Primer\C++PrimerWork\Sales_item.h|45|error: constructor required before non-static data member for 'Sales_item::revenue' has been parsed|
||=== Build failed: 3 error(s), 3 warning(s) (0 minute(s), 0 second(s)) ===|
Первая ошибка гласит, что такого файла, как Sales_item.h, не существует, хотя он был автоматически добавлен в рабочую область и открыт на собственной вкладке.Дальнейшие ошибки также указывают внутри самого файла (в частности, предупреждения).Две нижние ошибки - это то, что заставило меня думать, что оригинальная загрузка была каким-то образом повреждена.В связи с предупреждениями мне также интересно, ожидает ли компилятор другой версии C ++ или я делаю что-то не так, но понятия не имею.