今天看msdn不小心瞄到C#的動(dòng)態(tài)多維數(shù)組,忍不住流口水,如果自己也有一個(gè)該有多好,于是就開(kāi)始動(dòng)手湊。
剛開(kāi)始被如何定義動(dòng)態(tài)多維數(shù)組給卡住,我希望用起來(lái)像這樣:
Array<int> LytArray(3, 2, 1); //以下代碼相當(dāng)于定義了int[3][2][1];
可是構(gòu)造函數(shù)的參數(shù)個(gè)數(shù)在使用前無(wú)法確定,難道要寫(xiě)很多個(gè)構(gòu)造函數(shù),于是想了個(gè)辦法,把構(gòu)造函數(shù)的參數(shù)單獨(dú)拿出來(lái)做手腳,并為此暗暗興奮= =
class ArrayDimension
{
public:
int Data[MAX_ARRAY];
int Dimension;
ArrayDimension(const int index);
ArrayDimension& operator,(const int index);
};
template<typename _Type>
class Array
{
private:
AutoPtr<_Type> Data;
ArrayDimension DimensionInfo;
public:
Array(const ArrayDimension Info);
};
我以為在編譯Array<int> LytArray(3, 2, 1)時(shí),3會(huì)用ArrayDimension來(lái)解釋,然后通過(guò)重載逗號(hào)來(lái)解決不知道有多少個(gè)參數(shù)的問(wèn)題,事實(shí)上失敗了T_T:
error C2661: 'Lyt::Array<_Type>::Array' : no overloaded function takes 3 arguments
具體為什么不給編譯,其實(shí)我不怎么明白,僅以此文記錄一時(shí)的胡思亂想,歡迎各位來(lái)噴~
posted on 2009-10-11 21:35
Lyt 閱讀(1844)
評(píng)論(14) 編輯 收藏 引用 所屬分類:
數(shù)據(jù)結(jié)構(gòu)