如何在其他模板类中使用模板类的变量?在编译时,我收到错误clsC is not a template
- 为什么?
---- MyClasses.h: ----
template <typename T> class clsA {
public:
void Foo(typename clsC<T> arg) {...}
...
};
template <typename T> class clsB {
public:
std::vector<clsA<T>> a;
...
};
template <typename T> class clsC {
public:
clsC(typename clsB<T> arg) {...}
...
};
有很多类似的问题,但到目前为止还没有解决我的问题。
答案 0 :(得分:3)
您可能需要添加clsC前向声明。
template<class T> class clsC;
在clsA的定义之前把这条线放好。
另外,以下一行
std::vector<clsA<T>> a;
应重写为
std::vector< clsA<T> > a;
因为编译器误解了符号“&gt;&gt;”。