Зачем подключать header файлы в файлах исходного кода C++
У меня есть файл main.cpp:
#include <iostream>
#include "function.h"
using namespace std;
int main()
{
cout << add(1, 2);
return 0;
}
Файл function.h:
int add(int a, int b);
Файл function.cpp:
#include "function.h" // ЗАЧЕМ НУЖНО ПОДКЛЮЧАТЬ function.h?
int add(int a, int b) {
return a + b;
}
Как я знаю, в .cpp файлах нужно подключать соответствующий .h файл. Если убрать #include "function.h" в файле function.cpp, то программа также будет работать, т.к. компилятор сам находит определение функции.
Объясните пожалуйста, для чего его нужно подключать, для чего так делают?