我有一个类,其成员是另一个被模板化的类的向量。
我在classA.h中的代码如下所示:
template <typename T> vector<classB<T> >
我收到错误,例如&#34;没有合适的默认构造函数可用&#34; 和&#34;不允许使用多个模板参数列表。&#34; 我之前在classB中没有错误,直到我将这一行添加到classA。
我没有很多使用模板的经验,也不知道它为什么不编译,或者语法到底应该是什么。 this question似乎有所帮助,但答案太简洁了,我无法完全理解。是否真的有必要建立一个基类并从中得出答案所暗示的? A类是否需要被模板化,因为它有这个向量成员?
发生了什么?
非常感谢任何帮助
答案 0 :(得分:0)
您实际上是在指定的剪切中声明了一个模板。如果它是类的成员,则该类必须是模板并在成员中传播类型信息,例如
template <typename T>
class Test {
vector<MyClass<T>> _vector;
}