0
我想创建一个参数化类型的对象向量,其中每个对象都有不同的专用类型。例如:参数化对象向量
template<typename A>
struct BaseAtom
{
A _a;
};
struct AtomA : BaseAtom<int>
{};
int main()
{
std::vector<BaseAtom*> v; // (1)
AtomA a;
v.push_back(&a);
}
和逻辑,此不起作用,因为BaseAtom是一个模板类型,并且未在(1)中指定的模板参数。我如何创建一个具有这种特征的矢量?
通常(或不那么常见)称为外部多态性。 – Chad
但是,此向量可能包含从Base派生的对象,但不能从BaseAtom派生。 –
@ Peregring-lk:如果'BaseAtom '是唯一可以从'Base'派生出来的东西(这正是我想到的)。 – NPE