今天看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 阅读(1868) 
评论(14)  编辑 收藏 引用  所属分类: 
数据结构