我们真的是grep c ++风格的演员吗?

时间:2016-09-15 06:48:21

标签: c++ casting

当我读到书中的C ++演员时,总有一点是有用的,因为你可以轻松地查看.*_cast<的来源以找出用法。

但有人真的使用这个吗?在我的职业生涯中,我真的不记得我需要这样的功能。对于用户类型,即使您没有IDE支持,按类型名称grep也更实用。此外,如果你仍然可以使用旧的C风格的角色来搜索C ++ - 强制转换,你将有机会错过所有类型的转换。

我是否会遗漏某些内容或建议“使用C ++强制转换,因为它很容易grep”在实践中并不真正可用?

1 个答案:

答案 0 :(得分:7)

烧掉那些书。使用C ++样式转换只是因为它们更好

static_cast进行编译时检查。

如果运行时广播无效,则dynamic_cast将返回nullptr,或者抛出异常(取决于您正在投放的内容)。

reinterpret_cast是一种向编译器(和代码的读者)断言你知道自己在做什么的表达方式。

const_cast可用于明确删除或引入const - ness。抛弃const - ness可以将未定义的行为引入你的程序中,很明白它是显而易见的。

C风格的演员阵容不提供这些功能。