强制转化,就是把一个类型的变量a强制赋值给另外类型的变量b,如果能成功,变量b就具有一个值,如果不能成功就抛出一个错误。
C++共有四种转换:static_cast,dynamic_cast,reinterpret_cast,const_cast
static_cast相当于传统的C语言里的强制转换,效果就相当于加个括号:int a=(long)b;
建议用搜索一下 static_cast 这个词,你能学到更多东西。
static_cast在C++中用于将表达式的值转换为指定的类型,但没有运行时类型检查来保证转换的安全性。
主要有以下用法:
(1)用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。
(2)用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。
(3)把空指针转换成目标类型的空指针。
(4)把任何类型的表达式转换成void类型。
注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。
打酱油的
标签:c++,static,cast