4

我想在 Ada 中创建一个包含一些任务条目的任务类型(例如称为“计算机”的任务类型)。我想创建一个输入参数类型为“访问所有计算机”的任务条目,即指向任务类型的指针。这是可能吗?

我试图做这样的事情:

task type computer;
type computer_ptr is access all computer;    
task type computer is
  entry init(a: computer_ptr);
end computer;

这是在这里提出的。不幸的是,这不起作用:GNAT 说“计算机”的声明冲突。

谁能想到一种方法来实现我想做的事情?

4

1 回答 1

5

通过使用task type computer;,您声明了一台完全没有条目的任务类型计算机。之后,您声明另一个具有相同名称的任务类型。

如果您想“前向声明”任务类型(根据访问类型的需要),您应该type computer;像任何其他类型一样编写。这是一个不完整的类型,可以通过任务类型声明来完成。

所以你的例子应该是这样的:

type computer;
type computer_ptr is access all computer;
task type computer is
   entry init (a: computer_ptr);
end computer;
于 2012-05-14T14:09:46.257 回答