0

我对 IDL 比较陌生,所以我确定我想要做的实际上是微不足道的!

我正在创建一个包含一些成员变量的类。其中两个只是浮点数,但第三个我想成为一个大小未知的 3 维数组(嗯..实际上我知道第三个维度的大小是 12,但就是这样!)。我如何在类定义中声明它还是不可能的?也许我需要使用非数组数据结构..?

到目前为止,这是我的代码:

pro field__define
  void={field, lat_res: 0.0, long_res: 0.0, values: ?!?!?!?!}
  return
end
4

2 回答 2

2

您想使用指针,例如:

pro field__define
  void = { field, lat_res: 0.0, long_res: 0.0, values: ptr_new() }
end

顺便说一句,定义中不需要 a RETURN,执行在遇到END语句时返回。

这实际上并没有创建指针,它只是为指针节省空间。当您想使用该字段时,您需要执行以下操作:

self.values = ptr_new(fltarr(3, 4, 5))

然后使用如下值:

help, *self.values

最后,当你完成数组时不要忘记清理堆:

ptr_free, self.values

为这样的主题买一本书可能会很好,有很多细节可以通过几个例子来帮助解决。

于 2011-12-14T17:30:16.177 回答
0

此处概述了另一种使用散列表示类的成员变量的技术。它的一个优点是在 IDL 中使用哈希可以说比使用指针更容易,但它至少需要 IDL 版本 8 才能运行。

于 2013-03-04T17:55:30.937 回答