开发者

"warning: use of old-style cast" in g++ [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

When should static_cast, dynamic_cast and reinterpret_cast be used?

With this C++ code,

char* a = (char*) b;

I got warning warning开发者_StackOverflow中文版: use of old-style cast.

What would be the new-style cast?


reinterpret_cast, static_cast, dynamic_cast and const_cast are the c++ cast alternatives.

  • const_cast to remove const/volatile from a const variable.
  • dynamic_cast to perform runtime validity checks when casting in between polymorphic types
  • static_cast to perform e.g up/down-cast in a inheritance hierarchy, but with no runtime checks, or to explicitly perform conversions that could be implicit (e.g. float to int)
  • reinterpret_cast to convert in between unrelated types.

Brief syntax example:

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


Read this topic to know about C++ style casts which come in various flavors:

When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜