演员表或C风格类型演员
这个问题在这里已经有了答案:
演员应该很少使用,并且小心谨慎,如果你写作时滥用系统会更容易发现:
char *x = const_cast<char *>(some_const_char_pointer_expression);
比如果你掩饰它:
char *x = (char *)some_const_char_pointer_expression;
因此,使用明确的,受控制的,详细的表示法是因为它鼓励您避免强制转换,并在必须使用转换时使用正确,精确的转换。
C风格演员更普遍。 它从'选择' const_cast
, static_cast
, const_cast
用static_cast
, dynamic_cast
,然后dynamic_cast
用const_cast
最后reinterpret_cast
, reinterpret_cast
用const_cast
。 所以,正如你所看到的,c-cast和reinterpret_cast
之间的区别很大,因为C-cast演员首先需要静态和动态演员阵容。
如果你用C ++编写,你应该更喜欢使用上面的类型转换而不是C风格转换。 他们更明确。 但是C风格的演员阵容并不是非常非常糟糕的风格。
链接地址: http://www.djcxy.com/p/28707.html