【发布时间】:2012-04-22 22:37:51
【问题描述】:
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);
}
请参阅代码中的注释了解我想要做什么。
【问题讨论】:
-
对于初学者来说,没有A类
-
@SLaks 不是问题。
-
@R.MartinhoFernandes:为什么不呢?看起来他正试图将
vector<B>转换为vector<BaseA> -
@SLaks 因为
vector<A>持有副本。这种转换并没有什么问题,只是它恰好没有在std::vector中定义,可能会发生切片。
标签: c++ oop templates polymorphism