请教:reinterpret_cast;static_cast;dynamic_cast有什么区别,具体该怎么用?
解决方案 »
- 求mfc规则dll的实例(含socket,定时器)
- 请高手帮忙:文档/视图问题
- 文件托拽执行问题
- 下了一个Outlook界面的程序,可是,点击里面的某个大图标之后,鼠标动一下,这个大图标就跳一下,真是烦!
- 关于C语言中的内存保护问题,高手进来讨论,绝对有价值,100分奉送。
- 如果我在D盘dll文件夹下建立了一个工程编译后生成dll,请问如何使用此dll?
- 急!怎样在SQLSERVER中存储图片(在线等待)
- 我的IE上地址栏下面多了个工具条,用了N种工具都去不掉,怎么去掉啊?
- 为什么连接点的Fire_xxxx函数里面,要去查询N个连接点?
- 请推荐初学VC好书
- 求最简单的做一个树的映像的方法
- 关于通配符的问题
static_cast是int到long 等一类的转换。
dynamic_cast是用在有继承关系之间的转换。如
class base{
...};
clas h : public base {
};
你就可以h m_h
base * b = dynamic_cast<base*>(&m_h);
xxx_cast < type-id > ( expression )
如
int a=10;
UINT x=static_cast<UINT>(a);1.
static_cast转型最为常见,类似于以前c中的(UINT)a;
2.
dynamic_cast用于继承体系中的向下转型。(即将基类指针转换为派生类指针)
如:
Class B:public A
{
}
B InstanceOfB;
A *aaa=&InstanceOfB;
B *bbb=dynamic_cast<B>(aaa);
reinterpret_cast用于强制转换指针类型。
如:
int *it=&a;
float *flt=reinterpret_cast<float *>(it);