C++ 实现一个使用模板化类的类,而不将原始类作为模板

C++ 实现一个使用模板化类的类,而不将原始类作为模板,c++,C++,抱歉,如果标题混淆。希望示例代码能让它更清楚 假设我有一门课: template <typename T> Class_A { //has some methods } Class_B { vector<Class_A *> array; void add( Class_A * arg) { array.push_back(arg); } } 现在我还有一门课: template <typename T> C

抱歉,如果标题混淆。希望示例代码能让它更清楚

假设我有一门课:

template <typename T>
Class_A {
    //has some methods

}
Class_B {

   vector<Class_A *> array;

   void add( Class_A * arg) {
       array.push_back(arg);
   }

}
现在我还有一门课:

template <typename T>
Class_A {
    //has some methods

}
Class_B {

   vector<Class_A *> array;

   void add( Class_A * arg) {
       array.push_back(arg);
   }

}
所以现在Class_B不起作用,因为我没有像t参数一样使用Class_A参数。我的问题是,有一种方法可以做到这一点,而不必将Class_B作为模板。理想情况下,向量能够容纳类A和类A,所以我真的不希望类B被模板化


任何想法都将不胜感激

在不使Class_B成为模板的情况下实现这一点的唯一方法是使类型具有多态性;也就是说,让模板类class_A继承另一个类,比如class_A_base,并存储指向class_A_base的指针

如果您进一步解释一下您试图用此模式完成的任务,可能会有更好的解决方案。

从类a_Base派生,并将析构函数和相关方法作为虚拟方法。无论您在哪里不需要模板,都可以使用此库。例如

template<typename T>
class Class_A : public A_Base {
   ~Class_A() override; 
  // Other virtual methods
};
这能回答你的问题吗?