2011-12-14 7 views
0

私はIDLには比較的新しいので、私がしたいことは実際には非常に簡単です!未知のサイズの配列を持つIDLクラスをメンバー変数として定義する

私はいくつかのメンバ変数を持つクラスを作成しています。これらのうちの2つは浮動小数点になりますが、3番目は未知のサイズの3次元配列になりたいです(実際は3次元のサイズは12ですが、それだけです)。これをクラス定義で宣言するにはどうすればよいですか、それは不可能ですか?たぶん、私は非配列のデータ構造で作業する必要があります..?

ここでは、これまでに私のコードです:あなたが好きな、ポインタを使用したい

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

答えて

2

:ところで

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

、定義におけるRETURNは必要ありません、実行リターンENDステートメントに当たったとき。

これは実際にポインタを作成するわけではなく、ポインタのスペースを節約するだけです。最後に、あなたがしている時に、ヒープをクリーンアップすることを忘れないでください

help, *self.values 

:次に

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

のような値を使用する:あなたは、フィールドを使用する場合は、あなたのような何かを行う必要がありますで、アレイで行わ:このようなトピックの本を取得するには良いかもしれません

ptr_free, self.values 

、細部の多くはを通していくつかの例を、以下のことを助けることができることがあります。

0

クラスのメンバー変数を表すためにハッシュを使用する別の方法は、hereと概説されています。それはIDLのポインタよりハッシュで作業するのが間違いなく簡単ですが、少なくともIDLバージョン8を実行する必要があるという利点があります。

関連する問題