类型转换

AVOID CASTS

C++提供了4种类型转换符:
dynamic_cast
A dynamic_cast supports the run-time idenfication of objects addressed either by a pointer or reference.
const_cast
A const_cast casts away the constness of its expression.
static_cast
Any type conversion that the compiler performs implicitly can be explicitly requested by using a static_cast.

double d = 97.0;
char ch = static_cast<char>(d);

A static_cast is also useful to perform a conversion that the compiler will not generate automately.

void *p = &d;
double *dp = static_cast<doubl*>(p);

reinterpret_cast
A reinterpret_cast generally performs a low_level reinterpretation of the bit pattern of its operands.

int *ip;
char *pc = reinterpret_cast<char*>(ip);

更详细具体的可以参考:
C++类型转换小结

posted @ 2015-12-10 00:20  dflyingfish  阅读(171)  评论(0)    收藏  举报