【发布时间】:2012-02-21 13:05:50
【问题描述】:
我在 Ada 中有一个包含过程和函数的简单包。我想把所有的函数和过程都放在一个受保护的类型中。
例如对于一个简单的 .adb 文件
package body Pack is
procedure procedure1 (B : in out Integer) is
begin
B := new Integer;
end procedure1;
procedure procedure2 (B: in out Integer) is
begin
B.Cont(B.First-1) := 1;
end procedure2;
function procedure3 (B : Integer) return Boolean is
begin
return B.First = B.Last;
end procedure3;
end pack;
或者一个简单的.ads
package body Pack is
procedure procedure1 (B : in out Integer);
procedure procedure2 (B: in out Integer);
function procedure3 (B : Integer) return Boolean;
end pack;
我该怎么做?
【问题讨论】:
-
该代码距离编译还有很长的路要走。在
procedure1中,B 被声明为Integer,但您随后为其分配了访问值(new Integer)。而在另外两个子程序中,B 似乎是一个记录类型。并且保留字body不能出现在包规范中。 -
1> 这不是有效的 Ada 代码。 2>您是指并发中的受保护类型吗?如果是这样,请在此处阅读:en.wikipedia.org/wiki/…