c++ - 在另一个模板类中使用模板类类型的变量

标签 c++ class templates

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

相关文章:

带有变量和类型的 C++03 宏定义?

C++打印给定分子和分母的小数

java - 如何从Java中的不同类获取对象的名称

c++ - 什么是 std::map<K,V>::map;以及如何知道在实现/使用 STL 容器和函数时使用什么命名空间?

c++ - 需要一种方法在仅 header 库中拥有任何类型的模板化常量

c++ - 打印数组元素内存地址 C 和 C++,为什么输出不同?

c++ - 如何最好地重载运算符 < > <= >= 但只写一两个比较函数?

python - 如何使用派生自 Python 列表类的类

c++ - 如何向内置类/类型添加更多函数,如 int、double、std::string 等

Django Override Admin change_form.html Template - 在模板中显示关联模型