如何初始化Pascal中的对象数组?

时间:2014-06-17 16:27:41

标签: arrays object queue pascal freepascal

我有一个队列定义

Queue = object
    head, tail : pNode;
    constructor init;
    procedure insert(what : data);
    ...
end;

哪里

constructor Queue.init;
  begin
  new(head);
  tail := head;
  head^.next := nil;
end;

然后我有P : array[0..9] of Queue;并希望像for i:=0 to 9 do P[i].init;一样初始化其中的队列,但是编译器抱怨P似乎没有被初始化。

那么如何正确初始化对象数组呢?感谢。

1 个答案:

答案 0 :(得分:2)

Init只调用构造函数。初始化是通过使用构造函数作为第二个参数调用new来完成的,请尝试

for i:=0 to 9 do 
   new(P[i], Queue.Init));