2011-12-14 60 views
0

我對IDL比較陌生,所以我確信我想要做的事情實際上相當簡單!將一個未知大小的數組定義爲一個成員變量

我創建了一個有幾個成員變量的類。其中兩個將只是浮動,但第三個我想成爲一個未知大小的三維數組(其實我知道第三維的大小爲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聲明。

這實際上並不創建指針,它只是爲指針節省空間。當你要使用的領域,你需要做這樣的事情:

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

然後使用值,如:

help, *self.values 

最後再不要忘了清理堆,當你與數組完成:

ptr_free, self.values 

這可能是件好事得到一本書像這樣的話題,有很多的細節,通過下面的幾個例子可以幫助。

0

使用散列表示類的成員變量的替代技術概述爲here。它的一個優點是,使用散列可以比使用IDL中的指針更容易,但它至少需要運行IDL 8版本。

相關問題