指针类型转换,难题
现在要做一个指针类型转换,把void* a 变成CDMClass*
原来写的是(CDMClass*)a,未能通过公司的编码规则自动检查器,违反了“不能用c语言风格cast”这一条;
于是改成reinterpret_cast<CDMClass*>(a),又违反了“不允许使用reinterpret_cast”这一条;
大家还有什么招数能做指针类型的转换吗?static_cast不能用于指针转换,VS2003编译不通过
相关推荐
指针用法总结,指针用法大全
详细介绍了指针的用法及注意事项!让你不再害怕指针。
函数指针的强制类型转换实现代码
废话不多少,直接上代码 代码如下:/********************************************************************************* 程序名称:函数指针的强制类型转换 ** 程序描述:** 性能提升:** 程序版本:V1.0*******************************************************************************/#include <stdio>#define abcvoid syr(void){ printf(“hello world!\n”);}int
C语言类型转换-自动类型转换、强制类型转换、指针类型转换
C语言类型转换-自动类型转换、强制类型转换、指针类型转换。 一篇文章带你快速了解!
void*指针类型转换详解[源码]
本文详细介绍了void*指针的类型转换及其在C和C++中的不同处理方式。指针作为存储内存地址的特殊变量,其内存大小相同,这为void*指针存储任意类型指针提供了基础。文章首先解释了指针的基本概念,随后对比了C和C++中对指针类型转换的不同要求:C语言对类型转换要求较低,允许void*与其他类型指针相互赋值,而C++则更为严格,仅允许任何类型指针赋值给void*指针,反之则需显式转换。最后,通过一个_memcpy_函数的源代码示例,展示了void*指针在实际应用中的用途,即在处理任意类型指针参数时,需在使用前进行强制类型转换。
C++四种强制类型转换
四种强制类型转换:static_cast const_cast dynamic_cast reinterpret_cast 1、static_cast 编译器隐式执行的任何类型转换都可以由static_cast显示完成。 ①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。 ③把空指针转换成目标


