读书人

模板类的模板参数又是另一个模板类,这

发布时间: 2012-03-22 17:43:57 作者: rapoo

模板类的模板参数又是另一个模板类,这怎么实现?
想要实现一个自定义的Vector类,声明大致如下:
template <typename C>
class Vector {
... ...
private:
C* data;
... ...
};

然后又定义了某个类,该类的对象可以作为Vector中的元素. 而且这个类本身也是一个带整型参数的模板类:
template <int M>
class Node {
... ...
};

现在我要在程序中声明一个以Node <3> 类的对象为元素的Vector,于是在程序中这样写:
Vector <Node <3> > v1;
可是编译器就报错,说v1是undeclared identifier, 而且syntax error : missing '> ' before '; '

该如何解决这个问题?


[解决办法]
把Vector <Node <3> > v1;
写成Vector <Node <3> > v1; //注意空格。


[解决办法]
> > 会被编译器解释为cin> > x的那个> > 。新的C++标准应该会把这个问题改正。
[解决办法]
template <int M> //有这样的模板类?
class Node {
... ...
};

读书人网 >C++

热点推荐