如何处理由类定义的数组数组

时间:2013-06-01 06:02:37

标签: c++ templates

我正在编写一个模板Array类。我可以用它来声明这样的事情,

Array<int> oneDimenional(5);

但不是这个......

Array<Array<Array<Array<Array<Array<Array< int >>>>>>> Craziness(1000);

我的班级就像这样开始,

template <typename T>

class Array{

private:
    int len;
    T *arr;
public:
    Array() {
        int len = 0;
    }
    Array(int size) {
        arr = new T[size];
        len = size;
    }
    ~Array() {
        delete[] arr;
    }
//...
};

我猜我需要改变我的构造函数?

1 个答案:

答案 0 :(得分:2)

Array<Array<int> > arr(10);

在&gt;&gt;之间留出空格。 因为这被认为是&gt;&gt;右转。这就是为什么错误 它将在编译器本身中显示,并且是一个常见的错误。

 error: '>>' should be '> >' within a nested template argument list

所以你的代码应该是

Array<Array<Array<Array<Array<Array<Array< int > > > > > > > Craziness(1000);