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