好的,我有这样的代码:
class A {};
class B : A {};
std::vector<A> myfunction ()
{
B b();
std::vector<A> v;
v.push_back (b);
return v;
}
int main ()
{
std::vector<A> va = myfunction ();
for (A & a : va)
{
B & b = dynamic_cast<B&> (a);
}
}
看起来很简单,但它不想工作。我得到了一个“what():std :: bad_cast”错误,我的演员失败了,但我找不到原因。