Pascal - как я могу вернуть массив класса из функции в этом классе? - PullRequest
1 голос
/ 21 марта 2020

Если у меня есть класс, у которого есть защищенное свойство, это массив этого класса и функция publi c, чтобы получить этот массив и вернуть его - как я могу объявить его, чтобы он позволял массиву возвращать значение?

Обычно я бы использовал метод

TNodeArray = array of Node

, но здесь он не работает. Вот что я пытаюсь:

Node = class
  protected
     Neighbours : array of Node;
  public
     function GetNeighbours() : array of Node; //This is the problem line
end;

Любая помощь с благодарностью получена! Спасибо!

1 Ответ

1 голос
/ 27 марта 2020

Способ использования типа массива в качестве параметра или значения результата из функции заключается в использовании объявления отдельного типа:

TNodeArray

Здесь необходимо также объявить класс Node в следующем порядке: разрешить круговую ссылку.

Type

  Node = class;  // Forward declaration of the class

  TNodeArray = array of Node;

  Node = class
    protected
     Neighbours : TNodeArray;
    public
     function GetNeighbours() : TNodeArray; 
  end;
...