首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

模板类的模板参数又是另一个模板类,这如何实现

2012-03-22 
模板类的模板参数又是另一个模板类,这怎么实现?想要实现一个自定义的Vector类,声明大致如下:template typ

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

热点排行