c++ - 动态转换错误

标签 c++ dynamic-cast

动态转换以下代码时出现错误。

  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/

相关文章:

c++ - OpenCV 填充垫,与 VideoWriter 一起使用

c++ - C++ 中的开源 DXF 解析器

转换失败时的 C++ dynamic_cast 行为

使用转换 (STL) 时的 C++ 错误

c++ - 获取显存量

c++ - 共享库中模板化类和 dynamic_cast 的显式实例化

c++ - dynamic_cast 和右值引用

c++ - dynamic_cast 在内部是如何工作的?

c++ - 如何给出文件路径而不是文件名c++?

c# - 为什么在 C++ 中,dynamic_cast 被认为是不好的做法?