将任何类的模板存储在另一个类中

时间:2018-06-01 13:18:00

标签: c++ templates

如果要将任何模板化的类存储在另一个类中,是否有一种方法可以在不扩展非模板化基类的情况下执行此操作。实施例

类定义:

ax = plt.subplot2grid((3,3),(0,0), rowspan = 3, colspan = 2, aspect = 'equal',
                      autoscale_on = False, xlim = (-51.2,51.2), ylim = (-50.4,50.4))
ax1 = plt.subplot2grid((3,3),(1,2))

使用课程:

class BaseA
{
    ...
}

class Storage
{
public:
    baseA* toStore;//pointer to baseA
}

template <typename... Type>
class ExtendedA : public baseA
{
    ...
}

这是我能想到将模板化类型存储在非模板化类中的唯一方法。还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

存储和使用模板未知的模板化类型的唯一方法是以与问题中的示例相同的方式设置类。

有一个非模板化的基类。
扩展该基类,并为扩展模板。
现在可以存储和使用指向基类的指针,即使它恰好是模板化的扩展类。