关于static_cast 的一个简单问题?为什么不能从int**转换为void**
int getVal = 10;
int *ptrGetVal = &getVal;
int **ptr2GetVal = &ptrGetVal;
void **temp = static_cast<void**>(ptr2GetVal);
就是这一段,编译出错,提示 invalid static_cast from type ‘int**’ to type ‘void**’
但是void *temp = static_cast<void*>(ptrGetVal);是没有问题的
请高人解释一下
int *ptrGetVal = &getVal;
int **ptr2GetVal = &ptrGetVal;
void **temp = static_cast<void**>(ptr2GetVal);
就是这一段,编译出错,提示 invalid static_cast from type ‘int**’ to type ‘void**’
但是void *temp = static_cast<void*>(ptrGetVal);是没有问题的
请高人解释一下
...全文
相关推荐
static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解
1.static_cast对类的指针只能转换有继承关系的类。对普通的指针来说只能在void*和其他指针之间转换。它还可转换简单的类型,比如int到char等。不能提供数字到指针的转换。不能提供不同类型指针之间的转换比如int*到char*。 2.dynamic_cast提供安全的转换如果两个指针不存在继承关系转换会失败返回空指针,如果你提供一个错误的指针那样会发生内存访问异常,因为它会去比较两个类型的虚函数表。虚函数表的指针一般放在对象指针最开始的四字节中,你去访问一个错误的地址这样肯定会发生异常。 3.reinterpret_cast提供数字到指针间的转换比如void*到int。提供不同类型
类型强制转换的区别(static_cast、dynamic_cast的区别)
类型强制转换的区别 static_cast dynamic_cast 的区别
详解C++中const_cast与reinterpret_cast运算符的用法
主要介绍了C++中const_cast与reinterpret_cast运算符的用法,经常被用于表达式中的类型转换,需要的朋友可以参考下
C++ 四种强制类型转换的总结
C++ 四种强制类型转换的总结
由static_cast和dynamic_cast到C++对象占用内存的全面分析
下面小编就为大家带来一篇由static_cast和dynamic_cast到C++对象占用内存的全面分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧



