今天看msdn不小心瞄到C#的动态多维数组,忍不住流口水,如果自己也有一个该有多好,于是就开始动手凑。
刚开始被如何定义动态多维数组给卡住,我希望用起来像这样:
Array<int> LytArray(3, 2, 1); //以下代码相当于定义了int[3][2][1];
可是构造函数的参数个数在使用前无法确定,难道要写很多个构造函数,于是想了个办法,把构造函数的参数单独拿出来做手脚,并为此暗暗兴奋= =
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来解释,然后通过重载逗号来解决不知道有多少个参数的问题,事实上失败了T_T:
error C2661: 'Lyt::Array<_Type>::Array' : no overloaded function takes 3 arguments
具体为什么不给编译,其实我不怎么明白,仅以此文记录一时的胡思乱想,欢迎各位来喷~
posted on 2009-10-11 21:35
Lyt 阅读(1828)
评论(14) 编辑 收藏 引用 所属分类:
数据结构