Ada任务:任务条目中的指针

时间:2012-05-14 14:03:53

标签: pointers task ada

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

我试着这样做:

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

建议here。不幸的是,这不起作用:GNAT说“计算机”的声明冲突。

有人能想出一种方法来实现我想做的事吗?

1 个答案:

答案 0 :(得分: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;