我以前没有办法解决这个问题。我有一个班级
TRoom = class
private
width, length, X1,X2,Y1,Y2, index: integer;
public
function draw: RoomArr;
procedure setparam;
function getparam: integer;
end;
现在,在那之下,因为Delphi 7无法返回TClass的数组,我已经声明了这一点:
RoomArr = Array of TRoom;
这以某种方式解决了这个问题。不知道为什么,我只是在互联网上找到了这个解决方案
我正在使用" RoomArr"在其他功能,它正常工作,如预期的那样。 但是当数组在类之后声明(否则它不会知道类TRoom)时,TRoom本身(更确切地说是函数" draw")不能使用它。
有没有办法绕过这个问题?
提前致谢。
答案 0 :(得分:5)
type
TRoom = class; // forward declaration
TRoomArr = array of TRoom; // so that array type can be declared before class
TRoom = class
function Draw: TRoomArr; // and used by class
end;
答案 1 :(得分:5)
TRoom
的前瞻声明:
Type
TRoom = class; // forward declaration
RoomArr = Array of TRoom;
TRoom = class
...
function draw: RoomArr;
end;
forward declaration必须在同一类型的部分中完成。