Спасибо все понял, (я #include "menu.h" пихал до using namespace std; и из-за этого и ошибка)
Croessmah, толк есть, по книгам учится не у каждого получается.
P.S. Из того что я понял, для Croessmah
мы в отдельном файле сделали define и прикрепили его в другой, при компиляции получаем 1 файл, где функция menu() будет подставлена на место её иницилизации