0

如何在其他模板类中使用模板类的变量?在编译时,我收到错误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) {...}
    ...
};

有很多类似的问题,但到目前为止没有一个可以解决我的问题。

4

1 回答 1

3

您可能必须添加 clsC 前向声明。

template<class T> class clsC; 

将此行放在 clsA 的定义之前。

此外,以下行

std::vector<clsA<T>> a;

应该重写为

std::vector< clsA<T> > a;

因为编译器误解了符号“>>”。

于 2013-05-04T02:56:00.933 回答