欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c++四个强制转换实例讲解

程序员文章站 2022-05-03 19:33:38
static_cast最接近于C风格转换,但在无关类指针转换时,编译器会报错,提升了安全性; double d=3.14159265; int i = static_cast(...

static_cast最接近于C风格转换,但在无关类指针转换时,编译器会报错,提升了安全性;

double d=3.14159265;

int i = static_cast(d);

dynamic_cast要求转换类型必须是指针或引用,且在下行转换时要求基类是多态的,如果发现下行转换不安全,dynamic_cast返回一个null指针,dynamic_cast总是认为void*之间的转换是安全的;

reinterpret_cast可以对无关类指针进行转换,甚至可以直接将整型值转成指针,这种转换是底层的,有较强的平台依赖性,可移植性差;

class A {};

class B {};

A * a = new A;

B * b = reinterpret_cast