我正在编写一个模板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;
}
//...
};
我猜我需要改变我的构造函数?
答案 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);