Прежде всего, я действительно сомневаюсь, что вы получаете ошибку, потому что она не отформатирована правильно. Возможно, вы получили что-то, о чем говорилось std::basic_string<char, std::char_traits<char>, std::allocator<char> >
, но вряд ли компилятор выплюнул бы то, что вы опубликовали, если у вас не было ... интересного ... кода. В будущем скопируйте и вставьте точно , потому что эксперты могут получить удивительно большой объем информации из деталей, которые вы не считаете важными. И вы можете сильно ввести в заблуждение пользователей StackOverflow, если внесете неправильные изменения, и им будет намного сложнее помочь вам.
Теперь наиболее вероятной причиной вашей проблемы является то, что вы не знаете о разнице между шагом compile и шагом link . Эта ошибка «неопределенная ссылка» является компоновщиком ошибка.
Это означает, что с вашими заголовками все в порядке - ваш код компилируется, но в конце вы неправильно собрали все объектные файлы, поэтому вывод g+ -c MigratingUser.cpp
не был включен в вывод g++ -c main.cpp
(или как вы назвали код «использования»).
Вы можете сделать компиляцию и ссылку за один раз (для простых проектов) следующим образом:
g++ -o my_executable MigratingUser.cpp main.cpp
Это скомпилирует и свяжет два файла вместе .