首页 > 解决方案 > 为什么在我使用 dynamic_cast 时会发生此错误?

问题描述

我想向下转换一个对象,但它会导致“无法动态转换”错误..(源不是类类型)

问题是什么??

这是我的代码,

class A{...}

class B: public A{...}


A& x;
dynamic_cast<B&>(&x))!=0 //error here (source is not of class type)

标签: c++dynamic-cast

解决方案


只能对dynamic_cast一个类类型进行引用。

问题是什么??

正如错误所说,&x表达式的结果不是类类型。它是一种指针类型。您试图dynamic_cast指向一个引用的指针。这是不可能的。


推荐阅读