如何在其他模板类中使用模板类的变量?编译时,我收到错误 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) {...}
...
};
有很多类似的问题,但到目前为止没有一个能解决我的问题。
最佳答案
您可能必须添加 clsC 前向声明。
template<class T> class clsC;
将此行放在 clsA 的定义之前。
还有下面这行
std::vector<clsA<T>> a;
应该重写为
std::vector< clsA<T> > a;
因为编译器误解了符号“>>”。
关于c++ - 在另一个模板类中使用模板类类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16370066/