【发布时间】:2011-08-30 02:24:32
【问题描述】:
根据我的阅读,执行错误的运行时 dynamic_cast 可能会抛出 bad_cast 异常或返回零。
如果你正在转换指针,它会返回零是否正确?
即:
class Base { virtual void a(){} };
class Derived: public Base {};
int main () {
Base *base = new Base();
dynamic_cast<Derived*>(base);
return 0;
}
而且它在转换对象时会抛出一个 bad_cast 异常?
即:
class Base { virtual void a(){} };
class Derived: public Base {};
int main () {
Base base;
Base& ref = base;
dynamic_cast<Derived&>(ref);
return 0;
}
【问题讨论】:
标签: c++ casting dynamic-cast