我很清楚使用的优势static_cast
而不是指针类型的 C 风格转换。
如果指针类型不兼容,则:
-
static_cast
将在源代码中的特定行产生编译时错误
- C 风格转换可能会在程序执行过程中的“随机”点导致运行时错误
但我无法找到非指针类型的任何类似示例。
换句话说,对于非指针类型,两种转换方法都会产生相同的结果。
这是正确的吗,还是我错过了什么?
如果是的话,是static_cast
仅用于非指针类型以保持编码一致性?
其他两个答案尚未提及的一个优点是static_cast
更容易发现。括号的含义在 C++ 中是出了名的重载,并且很难发现邪恶(甚至不正确)的强制转换。当我看到某件事的结尾时_cast
不过,这就像精神上的减速带:我放慢速度并仔细检查类型系统为何被破坏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)