问题
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: use of old-style cast
.
What would be the new-style cast?
回答1:
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 typesstatic_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.
回答2:
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?
来源:https://stackoverflow.com/questions/5249418/warning-use-of-old-style-cast-in-g