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

       

Отложенные константы (deferred constants)


В некоторых спецификациях пакетов возникает необходимость описать константу приватного типа. Это можно выполнить таким же образом как и описание приватного типа (а также большинство опережающих ссылок). В общедоступной части спецификации пакета мы создаем неполное описание константы, после чего, компилятор ожидает получить полное описание константы в приватной части спецификации пакета. Например:

package Coords is

type Coord is private; Home: constant Coord; -- отложенная константа!

private

type Coord is record

X : Integer; Y : Integer; end record;

Home : constant Coord := (0, 0); end Coords;

В результате такого описания, пользователи пакета Coords

"видят" константу Home, которая имеет приватный тип Coord, и могут использовать эту константу в своем коде.

При этом, детали внутреннего представления этой константы им не доступны и они могут о них не заботиться.



Содержание раздела