使用模板化类型指定模板化类型的类型

时间:2013-08-12 00:21:43

标签: c++ templates recursion vector

当我想用模板化类型定义矢量的模板类型时会发生什么?我有一个类Customer,它是模板化的,因此构造函数可以采用类型为vector<T>的参数。现在我想实例化一个Customer类型的全局Vector,并发现自己想要输入vector<Customer<Customer<Customer<etc<etc>>>>>

我知道这可能是一个愚蠢的问题,但我很想得到一个很简洁的解释,这个小泡菜我找到了自己。

提前致谢...

1 个答案:

答案 0 :(得分:1)

如果您想要特定类型vector的{​​{1}},那么一切都很简单:

Customer

template < typename T >
class Customer
{
public:
  Customer( std::vector< Customer< T > > vec );
}

std::vector< Customer<CustomerType> > v;

但是,如果您想要Customer模板的不同实例,那么除了为类定义一些公共基础之外别无他法,并将其存储起来:

std::vector< Customer<CustomerType>* > v;