Я сейчас читаю этот документ: Ada для разработчика на C ++ или Java . Глава 8 (страница 33) содержит введение в объектно-ориентированное программирование в Ada. Глава начинается со следующего примера:
type T is tagged record
V, W : Integer;
end record;
type T_Access is access all T;
function F (V : T) return Integer;
procedure P1 (V : access T);
procedure P2 (V : T_Access);
На следующей странице приведен пример вызова подпрограммы P1
:
declare
V : T;
begin
V.P1;
end;
Это приводит к следующей ошибке: object in prefixed call to "P1" must be aliased (RM 4.1.3 (13 1/2))
. Если я заменю procedure P1 (V : access T);
на procedure P1 (V : in out T);
, пример успешно скомпилирован. Это опечатка в документе?