小编Ale*_*lex的帖子

是否可以从一个基类到另一个基类进行dynamic_cast?

例如,我有这样的代码

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永远不会被执行.是否有可能进行这样的转换?

c++ inheritance dynamic-cast class

5
推荐指数
2
解决办法
1325
查看次数

标签 统计

c++ ×1

class ×1

dynamic-cast ×1

inheritance ×1