强类型转换操作符
dynamic_cast:
Type *pp=dynamic_cast<Type*>(pt);
(pt为某个类的指针)(Type要是(*pt)的直接或间接基类 否则返回一个0即空指针)
const_cast:
实现const和volatile转换
ep:
const High * pbar=&bar;
Hight * pb=const_cast<Hight*>(pbar); //ok删除const标签
Low * pl=const_cast<Low*>(pbar); //no 它试图High转low(基类转派生类)
static_cast:
Hight * pb=static_cast<Hight*>(pbar)
(pbar指向类型一定要和Hight类型可以隐式转换(单向就行))
无关类转换
reinterpret_cast:
struct dat {short a;short b;}
long value=0xA2245588;
dat * xx=reinterpret_cast<dat*>(&value);
cout<<xx->a<<endl;


浙公网安备 33010602011771号