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...
inta=8;intb=3;doubleresult=static_cast<double>(a)/static_cast<double>(b); 1 2 3 格式如下: static_cast<类型>(变量表达式) 应用场景: 用于类层次结构中基类和派生类之间引用或指针的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的。 进行下行转换(把基类的指针或引用转换成派生类...
const_cast,字⾯上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如⼦类和⽗类之间的多态类型转换。 reinterpreter_cast,仅仅重新解释类型,但没有进⾏⼆进制的转换。 4种类型转换的格式,如: TYPE B = sta...