强类型转换操作符

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;

posted @ 2007-03-11 01:59  Edward Xie  阅读(187)  评论(0)    收藏  举报