Так что я учусь делать заголовочные файлы. Вот мой код (три отдельных файла)
//Main.cpp
#include <iostream>
#include "functions.h";
using namespace std;
int main()
{
cout << multiply(3, 4) << endl;
return 0;
}
//functions.cpp
int multiply(int x, int y)
{
return x * y;
}
//functions.h
#ifndef FUNCTIONS_H_
#define FUNCTIONS_H_
int multiply(int x, int y)
#endif
Код компилируется и запускается, но часть, которая беспокоит меня, находится в Main.cpp. Эта точка с запятой находится в «functions.h» и выше, «используя пространство имен».
Я поместил это там, потому что визуальная студия сказала, что ожидала одного, но я понятия не имею почему. Я не вижу этого в уроках.
Конечно, это работает. Но мне не нравится не знать, почему это там и что это не должно быть.
Спасибо за помощь!
Потому что вы пропускаете одну точку с запятой в functions.h
int multiply(int x, int y);
^^^^ here
C ++ разделяет операторы точкой с запятой.
#include directive
заставляет содержимое файла «functions.h» отправлять компилятору вместе с содержимым вашего файла. Результатом этого является то, что ошибки компиляции, вызванные ошибками в заголовочных файлах, часто сообщаются в коде, который включает их (спасибо Филиппу)
Поскольку препроцессор C вообще ничего не знает о синтаксисе C — вы можете использовать его для объединения электронных писем, исходных файлов на ассемблере или HTML, если хотите, он просто помещает весь исходный код в один длинный файл для фактической компиляции компилятором.
И вы пропустили точку с запятой после int multiply(int x, int y)
в «functions.h».