具有明确定义的类型转换, 都可以使用static_cast(只要不包含底层const)。
通过将一个运算对象强制转换成double类型就能使得表达式执行浮点数除法:
//进行强制类型转换以便执行浮点数除法
double slope = static_cast(j) / i;
当需要将一个较大的算术类型赋值给较小的类型时, static_cast非常有用。
强制类型转换告诉程序的读者和编译器: 我们知道潜在的精度损失。
static_cast对于编译器无法自动执行的类型转换也非常有用。
void* p = &d;
double *dp = static_cast(p);
把指针存在void* 中, 并且使用static_cast将其强制转换回原来的类型时, 应该确保指针的值保持不变。
unsigned char* data = img.ptr(i);
static_cast(*data++)
参考《C++ primer》第5版
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)