static_cast是C++中的一种类型转换操作符,用于在具有明确转换关系的类型之间进行转换。这种转换在编译时进行检查,因此比C风格的强制类型转换更安全。static_cast可以用于基本数据类型之间的转换、派生类与基类之间的指针或引用转换(在安全的条件下)、void指针与其他类型指针之间的转换等。 2. 强制类型转换(Type Casting...
cast.cpp: In function 'int main()': cast.cpp:22:31: error: invalid static_cast from type 'B*' to type 'A*' cast.cpp:23:32: error: cannot dynamic_cast '& b' (of type 'class B*') to type 'class A*' (source type is not polymorphic) 应使用static_cast取代c风格的强制类型转换...
dynamic_cast< type_id >(expression) type_id 必须是类的指针、类的引用或者void*。 主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。 dynamic_cast只能用于含有虚函数的类; 进行上行转换的时候,与static_cast 的作用一样。下行转换的时候,具有类型检查的功能,比static_cast更安全。 dynamic_c...
1. static_cast 实现C++种内置基本数据类型之间的相互转换,不能用于两个不相关类型进行转换。 例如:将整形数据转换为浮点型 c语言方式 inta=8;intb=3;doubleresult=(double)a/(double)b; 1 2 3 C++方式 inta=8;intb=3;doubleresult=static_cast<double>(a)/static_cast<double>(b); 1 2 3 格式如下...