I have some confose about the process of execute on *.h and *.cpp .
It assign two functions without content in *.h, and supplement them separately on hello.cpp and factorial.cpp.
However, in main.cpp, it only has a header file without contents.
The example is similar to most projects by C program like (lda-c).
In lda-c 's directory, there several *.h whose *.cpp that name after *.h.