Ада-95. Компилятор GNAT



         

Абстрагирование общей функциональности - часть 2


/p>

В данном случае, для реализации функциональности, которая задана абстрактным типом Stack, необходимо чтобы вызовы подпрограмм, обращенные к типу Unbounded_Stack, были соответствующим образом перенаправлены к связанному списку.

Таким образом, тело пакета Unbounded_Stacks будет иметь следующий вид:

package body Unbounded_Stacks is

procedure Push(Item : in out Unbounded_Stack; Value : in Integer) is

begin

Lists.Insert_At_Head(Item.Values, Value); end Push;

procedure Pop(Item : in out Unbounded_Stack; Value : out Integer) is

begin

Lists.Remove_From_Head(Item.Values, Value); exception when Lists.Underflow => raise Stacks.Underflow; end Pop;

. . .

end Unbounded_Stacks;




Содержание  Назад  Вперед