
static_cast:用于所有明确定义的转换
1.数据类型从小到大的转换
int x;
static_cast<long>(x);
static_cast<double>(x);
2.窄化数据,数据类型从大到小的转换,可能丢失数据
double x;
static_cast<int>(x);
3.void*类型不能直接转换成其他类型
int *p = static_cast<int*>(malloc(100));
//malloc返回的默认是void*类型
4.可以用于具有继承关系的类型之间的转换
class Base{};
class Dervied:public:Base{};
Dervied d;
Base d = static_cast<Base>(d);
//将子类指针转换成父类指针




近期评论