例如,我有这样的代码
class Base1
{
virtual void wonderFULL() = 0;
};
class Base2
{
// all this weird members
};
class Derived : public Base1, public Base2
{
// not so weird members
};
int main()
{
Derived Wonder;
magicFunction(&Wonder);
return 0;
}
void magicFunction(Base2 *ptr)
{
if (Base1 *b1 = dynamic_cast<Base1 *>(ptr))
b1->wonderFULL();
}
Run Code Online (Sandbox Code Playgroud)
但是,由于不可能将ptr转换为b1,所以neverFULL永远不会被执行.是否有可能进行这样的转换?