Один из моих "не-программистов" недавно решил сделать программу на С++ для решения сложной механической проблемы.
Он написал каждую функцию в отдельном файле .cpp, а затем включил их все в основной исходный файл, что-то вроде этого:
main.cpp:
#include "function1.cpp"
#include "function2.cpp"
...
int main()
{
...
}
Затем он скомпилировал код с одной строкой gcc:
g++ main.cpp // took about 2 seconds
Теперь я знаю, что это должно работать, но я не уверен, является ли включение .cpp файлов непосредственно в основную программу хорошей идеей. Я видел следующую схему несколько раз, где все прототипы функций входят в заголовочный файл с ключевым словом extern, например:
funcs.h:
extern void function1(..);
extern void function2(..);
...
main.cpp:
...
#include "funcs.h"
...
& компиляция с помощью:
g++ -c function1.cpp
g++ -c function2.cpp
...
g++ -c main.cpp
g++ -o final main.o function1.o function2.o ...
Я думаю, что эта схема лучше (с makefile, конечно). Какие причины я могу дать моему другу, чтобы убедить его в этом?