FILENAME_H
- это соглашение. Если вы действительно хотите, вы можете использовать #ifndef FLUFFY_KITTENS
в качестве защиты заголовка (при условии, что она не была определена где-либо еще), но это будет хитрая ошибка, если вы определите ее где-то еще, скажем, как количество котят для чего-то или другого.
В заголовочном файле add.h объявления находятся буквально между #ifndef
и #endif
.
#ifndef ADD_H
#define ADD_H
#include "mymath.h"
int add(int x, int y);
#endif
Наконец, int main()
не должно быть в заголовочном файле. Он всегда должен быть в файле .cpp
.
Чтобы очистить это:
#ifndef ADD_H
в основном означает «если ADD_H не было #defined
в файле или во включенном файле, то скомпилировать код между директивами #ifndef
и #endif
». Поэтому, если вы попытаетесь #include "add.h"
более одного раза в файле .cpp
, компилятор увидит, что ADD_H уже было #defined
, и проигнорирует код между #ifndef
и #endif
. Защита заголовка только предотвращает включение файла заголовка несколько раз в один и тот же файл .cpp
. Защита заголовка не запрещает другим файлам .cpp
включать файл заголовка. Но все .cpp
файлы могут включать защищенный заголовочный файл только один раз .