私はAdaは初めてですが、プログラミング全般は初めてではありません。保護されたデータ オブジェクトに問題があります。例や本から理解したように、タスクと同じように、保護されたデータ オブジェクトのメンバーを呼び出すことができます。
これが私のコードです:
procedure ass4 is
protected type Signal_Object is
entry Wait;
procedure Signal;
function Is_Open return Boolean;
private
Open : Boolean := False;
end Signal_Object;
protected body Signal_Object is
entry Wait when Open is
begin
Open := False;
end Wait;
procedure Signal is
begin
Open := True;
end Signal;
function Is_Open return Boolean is
begin
return Open;
end Is_Open;
end Signal_Object;
begin
Signal_Object.Signal;
end;
ただし、コンパイラは呼び出しを好まずSignal_Object.Signal;
、次のエラーが発生します
invalid use of subtype mark in expression or call
それで、私は何が欠けていますか?