Показать сообщение отдельно
  #6  
Старый 23.09.2016, 19:43
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Значит препод - дурак.
Классический подход к построению связанных списков - записи (record в паскале, struct в C/C++). Классы используются только там, где нет других возможностей (Java, например; там все - классы).
А вот контейнер - это уже должен быть класс (хотя в последних версиях можно сделать и с помощью записей, благо теперь появилась возможности делать методы в записях (хотя я и противник этого).

Да, для нормального функционирования еще надо написать правильный деструктор, который освободит память, занятую списком. На самом деле сделаем 2 метода: очистку (clear) и сам деструктор:
Код:
procedure TFileCatalog.Clear;
var
  Item : PFileItem;
begin
  While FHead <> Nil Do
    Begin
      Item := FHead;
      FHead := FHead.Next;
      Dispose(Item);
   End;
end;

destructor TFileCatalog.Destroy; override;
begin
  Clear;
  inherited;
end;

ЗЫ. TFail - это не файл, это ФЭЙЛ Просто обратил внимание
Ответить с цитированием