多态性,为什么我不能这样做?

Che*_*tah 4 c++ oop polymorphism templates

class BaseA
{
}

class B : public BaseA
{
}

template <class T>
class C : public vector<T>
{
}

void someFunction (void)
{
    C<B> myClass;

    // I can't seem to do this...is it not possible?
    vector<BaseA> converted = ((vector<BaseA>) myClass);
}
Run Code Online (Sandbox Code Playgroud)

请参阅代码中的注释,了解我要执行的操作.

APr*_*mer 12

即使B是A(我假设A和BaseA之间的混淆),B的向量也不是A的向量

尝试

vector<A> converted(myClass.begin(), myClass.end());
Run Code Online (Sandbox Code Playgroud)

这可能是你想表达的.

(继承自矢量的BTW 一般都是坏主意,它不是为此而设计的.)