模板类的模板参数又是另一个模板类,这如何实现
模板类的模板参数又是另一个模板类,这怎么实现?
想要实现一个自定义的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 {
... ...
};
想要实现一个自定义的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 {
... ...
};