动态投射以下代码时出现错误。

  class CBase
  {
  };

  class CDerived: public CBase
  {
  };



  main()
  {

    CBase b;
    CDerived* pd;
    pd = dynamic_cast<CDerived*>(&b);
  }

错误代码为:error C2683: 'dynamic_cast' : 'CBase' is not a polymorphic type.

最佳答案

dynamic_cast仅适用于多态类
您的基类CBase至少应具有虚方法

关于c++ - 动态转换中的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10950829/

10-09 06:38