使用未知大小的数组定义IDL类作为成员变量

时间:2011-12-14 12:02:19

标签: arrays class idl-programming-language

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

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

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

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

2 个答案:

答案 0 :(得分:2)

您想使用指针,例如:

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

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

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

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

然后使用以下值:

help, *self.values

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

ptr_free, self.values

获得一本关于这样的主题的书可能会很好,有很多细节可以通过一些例子来帮助。

答案 1 :(得分:0)

使用散列来表示类的成员变量的替代技术概述为here。它的优势在于使用哈希比使用IDL中的指针更容易,但它至少需要运行IDL版本8.