Код, который вы показываете, является неполным и не компилируется.Вам не хватает объявлений для переменных членов класса.Ваш конструктор для EmployerList
, вероятно, должен взять const Employer &
и сохранить его;он не должен иметь дело со всеми переменными, используемыми для инициализации Employer.
Запись связанного списка в файл является довольно сложной задачей.Вы не можете многозначительно писать указатели;Вы должны записать значения данных для каждого элемента в стандартизированном, легко читаемом формате.Вы используете близость в файле, чтобы указать отношения «следующий» (и «предыдущий»).Этот процесс называется «сериализация» на выходе и «десериализация» на входе.
Эта идиома:
Employer *node = new Employer(Email, cName, pos, fName, lName, addr, tHome, tMobile);
//if memory was sucessfully allocated
if (node != NULL)
является архаичной (до стандарта, то есть до 1998 года)C ++.Вы не вызывали распределитель «без броска»;если распределение не удалось, было сгенерировано исключение.Поэтому проверка распределения избыточна.
Это не вызывает прямых проблем;тест просто бесполезен (и делает ваш код более нужным).Если ваш учебник использует эту технику, вы, вероятно, должны получить более новый учебник.
(Я также отмечаю, что мне пришлось исправить интервал, чтобы код был согласованным; согласованность в программировании очень важна.)