g++中出现“warning: use of old-style cast”的警告

51

9
好的,b是什么? - GManNickG
2个回答

69

reinterpret_caststatic_castdynamic_castconst_cast 是 c++ 中的类型转换操作符。

  • const_cast 用于去除变量的 const/volatile 限定符。
  • dynamic_cast 用于在多态类型之间进行强制类型转换时运行时执行有效性检查。
  • static_cast 用于在继承层次结构中执行向上/向下类型转换,并执行没有运行时检查的显式转换(例如将 float 转换为 int)。
  • reinterpret_cast 用于在不相关的类型之间进行转换。

简短的语法示例:

char* a = (char*) b; 
//would be 
char* a = static_cast<char*>(b);
//to remove the warning

3

3
我的观点是,如果你认为将另一个问题的链接作为答案是合适的,那么这个问题就是一个重复的问题。 - Chris Lutz
@Chris:发帖后我意识到了这个问题,所以我投票支持关闭它! - Nawaz
1
取决于他是否能通过搜索“旧式”和/或“新式”转换找到另一个问题。 - Erik
2
@Erik:这并不取决于情况,因为即使这个问题被标记为重复,它仍然作为搜索结果页面存在。如果是重复的问题,应该将其标记为重复,而不是因为问题措辞稍有不同就再次回答相同的答案。 - Steve Jessop
啊,好的,那我也会投票关闭。 - Erik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接