static_cast
不会抛出异常。但是如果不成功,它会产生一个未定义的结果。检查转换是否成功的最正确方法是什么?
这会有帮助吗?
NewType new_typ_obj = static_cast<NewType>(obj);
if (new_typ_obj)
new_typ_obj.do();
最佳答案
static_cast不会为您提供有关成功的信息。如果您需要进行动态类型转换,请使用 dynamic_cast 或类似 boost any 的库。
关于C++ static_cast 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146982/