static_cast<void**>和(void**)有什么区别 我给QueryInterface传递参数如下QueryInterface( iid, static_cast<void**>&pI )QueryInterface( iid, (void**)&pI )为什么前一种编译要报错,后一种正确? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 QueryInterface( iid, static_cast<void**>(&pI) )static_cast 提供了非运行时检查转换的安全性 static_cast 更安全, 普通的强制类型转换有时无法检测转换的安全性 但是按照我那样的用法,其实COM里都是这样的用法,你要使用那个函数,更安全的static_cast也不顶用的嘛,只能求其次用(void**)? 前一个是C++的类型转换,后一个是C的,前一个改成reinterpret_cast<void**>就行了 指针转换用他reinterpret_cast<void**> 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:1) 用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。2) 用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。3) 把空指针转换成目标类型的空指针。4) 把任何类型的表达式转换成void类型。注意:static_cast不能转换掉exdivssion的const、volitale、或者__unaligned属 对一个例子的疑惑 组件,组件类有什么区别?一个组件可以有多个组件类么?可以有多个clasid么? vc datagrid怎么动态连接数据库?急 如何用滑条调节界面亮度 在基于对话框的应用程序中怎样应用SDI应用程序的toolbar,他的ID是IDR_MAINFRAME LPCTSTR怎么转化为char类型? 菜单显示不出,怎么回事呢?没分了 请问在VC6MFC一新类中为什么不能定义友元函数? 如何用VC实现SQL SERVER数据库与文本文件大批量快速拷贝 谁有FAT32的资料 dmz主机问题(难道没法解决?) 算法设计
进行上行转换(把子类的指针或引用转换成基类表示)是安全的;
进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。2) 用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。3) 把空指针转换成目标类型的空指针。4) 把任何类型的表达式转换成void类型。注意:static_cast不能转换掉exdivssion的const、volitale、或者__unaligned属