gpt4 book ai didi

c++ - 对非指针类型使用 static_cast 而不是 C 风格的强制转换有什么好处吗?

转载 作者:IT老高 更新时间:2023-10-28 12:36:55 24 4
gpt4 key购买 nike

我很清楚使用 static_cast 而不是 C 风格的指针类型转换的优势。

如果指针类型不兼容,则:

  • static_cast 将在源代码中的特定行产生编译时错误
  • C 风格的转换可能会在程序执行的“随机”点导致运行时错误

但我找不到任何非指针类型的类似示例。

换句话说,两种转换方法对非指针类型产生相同的结果。

这是正确的,还是我错过了什么?

如果是,static_cast 是否仅用于非指针类型以保持编码一致性?

最佳答案

其他两个答案尚未提及的一个优点是 static_cast 更容易发现。众所周知,括号的含义在 C++ 中被重载,并且很难发现邪恶的(甚至不正确的)强制转换。但是,当我看到以 _cast 结尾的东西时,就像是精神上的减速带:我放慢了速度,仔细检查了为什么类型系统被颠覆了。

关于c++ - 对非指针类型使用 static_cast 而不是 C 风格的强制转换有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27525577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com