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);
}
请参阅代码中的注释以了解我正在尝试做的事情。
最佳答案
B 的 vector 不是 A 的 vector ,即使 B 是 A(我假设 A 和 BaseA 之间存在混淆)
尝试
vector<A> converted(myClass.begin(), myClass.end());
这可能是你想表达的。
(顺便说一句,继承自 vector is bad idea in general ,它不是为此而设计的。)
关于c++ - 多态,为什么我做不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092130/