0

私はIDLに比較的慣れていないので、私がやりたいことは実際には非常に些細なことだと確信しています。

いくつかのメンバー変数を使用してクラスを作成しています。これらのうちの2つはフロートになりますが、3つ目はサイズが不明な3次元配列になりたいです(実際には、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 に答える