C++ static_cast 的正确方法

标签 c++ exception casting static-cast

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/

相关文章:

c++ - 在线性时间内在给定位置将字符就地插入到字符串中

c++ - TCP 数据接收超时对我不起作用

java - 调用了非法方法

c++ - "Can' t load OpenGL extension [glBindBuffer] in function IntGetProcAddress”Qt中OpenCV异常

c++ - 具有常量法线的 glDrawElements

c++ - 数组重新分配 C++

wpf - 如何将绑定(bind)错误转化为运行时异常?

java - 在一个表达式中将 ArrayList<String> 转换为 String[]?

c++ - 编织内联类型转换(python)

c++ - 从 'OLE_HANDLE' 转换为 'HICON' 的正确方法是什么?