当我使用dynamic_cast()
时,会出现以下错误:
错误:' dynamic_cast'未在此范围内声明
提前感谢!
答案 0 :(得分:7)
语法如下
dynamic_cast<TargetType>(SourceObject)
在你提供的错误消息中,有一个拼写错误(dyanmic vs dynamic)
答案 1 :(得分:1)
dynamic_cast
仅适用于多态类。因此,如果您正在使用的类不是多态的,则会产生编译错误。
多态类是一个具有至少一个虚函数的类,甚至是析构函数!
在此示例中使用dynamic_cast
的语法:
struct A { virtual ~A(){} };
struct B : A { };
B b;
A *pA = &b; //no cast needed here!
B *pB = dynamic_cast<B*>(pA); // dynamic cast is needed here!
答案 2 :(得分:0)
语法为dynamic_cast<Foo*>(BarObj);
,因此不会将其作为函数调用。