我在程序和函數中有一個簡單的Ada包。我想要所有的功能和程序在一個受保護的類型。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'不能出現在包規範中。 – 2012-02-21 14:11:41
1>這是無效的Ada代碼。 2>你的意思是在併發中使用受保護的類型嗎?如果是這樣,請閱讀:http://en.wikipedia.org/wiki/Ada_%28programming_language%29#Concurrency – NWS 2012-02-21 14:17:37