例如float转int float a = 1.3; int b = static_cast<int>(a); cout<<"b="<<b<<endl; 2.静态下行转换( static downcast) 不执行类型安全检查。 Note: Ifnew-typeis a reference to some classDandexpressionis an lvalue of its non-virtual baseB, ornew-typeis a pointer to some complete class...
int n2 = reinterpret_cast<int>(&o1); int n3 = reinterpret_cast<int&>(f1); int n4 = reinterpret_cast<int&>(o1); 2. 指针【引用】之间互转。如:float*转成int*、CBase&转成int&、CBase*转成CBase2*、CBase&转成CBase2&等 float f1 = 1.0f; CBase1 o1; int* n1 = reinterpret_cast<i...
static_cast<type>(expression)将expression转换为type类型。常见的使用场景包括: 基本类型转换:用于将不同的基本数据类型相互转换,例如int转换为float或double。 inti =10;floatf =static_cast<float>(i);// int 转换为 float 指针和引用的上行转换(upcasting):在继承体系中,static_cast可以安全地将派生类指针或引...
(4)把任何类型的表达式转换为void类型 注意:static_cast不能转换掉expression的const、volitale或者__unaligned属性。主要用于基本类型之间、有继承关系的类对象之间、类指针之间的转换,不能用于基本类型指针之间的转换。 比如:下面代码第五行会报错,“static_cast”: 无法从“float *”转换为“int *” 2,const_cast...
static_cast 的作用static_cast 的作用类似于 C 语言中的强制类型转换,但它更加严格和安全。它用于以下几种情况: 2楼2024-06-12 13:30 回复 无我炼 吧主 11 基本数据类型之间的转换:将一个基本数据类型转换为另一个基本数据类型。例如,将 int 转换为 double,或者将 float 转换为 int。~~~int a = 10...
一般情况下,你可以使用static_cast用于数字类型的转换,如把枚举转换为int或是 float类型。 之所以讲static_cast不够安全,就是指在运行阶段不进行类型检查(和dynamic_cast相比,但是dynamic_cast也有一定的局限性,我们以后再讨论)。 具体用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行...
一、static_cast的应用场景 基本数据类型之间的转换 可以用于基本数据类型之间的转换,比如int转换为double,float转换为int等。 父类指针向子类指针的转换 当需要将父类指针转换为子类指针时,可以使用static_cast。 显式调用构造函数的类型转换 还可以用于显式调用构造函数来进行类型转换。
int 转 float: 42 double 转 int: 9 2、类之间的转换:继承关系下的转换 static_cast常用来在有...
short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如下图所示。宽化转换(如char到int,int到long long,int到float,float到double,int到double等)构成隐式转换,编译器允许直接转换。 但若 double a=2000; short b; ...
static_cast是一种用于类型转换的C++运算符。它可以将一个类型的值转换为另一个类型,但只适用于具有转换关系的类型。以下是static_cast的常见用法: 将整数类型转换为浮点类型:可以将一个整数类型(如int、long、short等)转换为浮点类型(如float、double等)。 int num = 10; double numDouble = static_cast<...