Поиск…


Общие подпрограммы

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

generic
    type A_Type is private;
procedure Swap (Left, Right : in out A_Type) is
    Temp : A_Type := Left;
begin
    Left := Right;
    Right := Temp;
end Swap;

Общие пакеты

В общем пакете Ada после создания экземпляра данные дублируются; то есть, если они содержат глобальные переменные, каждый экземпляр будет иметь свою собственную копию переменной, правильно напечатанную и независимую от других.

generic
    type T is private;
package Gen is
    type C is tagged record
        V : T;
    end record;
    G : Integer;
end Gen;

Общие параметры

Ada предлагает широкий спектр общих параметров, которые трудно перевести на другие языки. Параметры, используемые во время создания экземпляра и, как следствие, те, на которых может рассчитывать общий элемент, могут быть переменными, типами, подпрограммами или экземплярами пакетов с определенными свойствами. Например, следующее предоставляет алгоритм сортировки для любого типа массива:

generic
    type Component is private;
    type Index is (<>);
    with function "<" (Left, Right : Component) return Boolean;
    type Array_Type is array (Index range <>) of Component;
procedure Sort (A : in out Array_Type);


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow