我以前不知何故没有处理过这个问题。我有一个类
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”)不能使用它。
有没有办法绕过这个问题?
提前致谢。
最佳答案
TRoom
的前向声明:
Type
TRoom = class; // forward declaration
RoomArr = Array of TRoom;
TRoom = class
...
function draw: RoomArr;
end;
forward declaration必须在同一类型部分完成。
关于arrays - 类的函数返回一个在类之后声明的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411258/