Полагаю, вы неверно указываете:
Main.cpp
делает не нужно user.cpp
: ему просто нужно определить типы, реализованные в user.cpp
.Вот почему вам просто нужно включить user.h
в ваш Main.cpp
.
Обычно каждый .cpp
файл превращается в свой собственный translation блок и дает другой объектный файл .Эти файлы затем собираются, когда происходит процесс , связывающий .
По существу, выполняются следующие шаги:
- Для каждого исходного файла (
.cpp
) высгенерировать объектный файл (компиляция). - Вы собираете эти объектные файлы в получившийся двоичный файл (связывание).
Обычно люди используют такой инструмент, как Makefile
или даже лучше: SConstruct
для автоматизации этих шагов.
SConstruct
хорошо, потому что он также анализирует исходный файл и строит дерево зависимостей перед компиляцией, чтобы убедиться, что все идет хорошо.