C++ 继承关系中的指针转换
答案:2 悬赏:10
解决时间 2021-02-12 09:13
- 提问者网友:樱花树下最美的约定
- 2021-02-12 04:32
C++ 继承关系中的指针转换
最佳答案
- 二级知识专家网友:承载所有颓废
- 2021-02-12 05:59
Human和Person之间没有继承关系 所以Person* pPersonA = (Person*)pHuman ;是不对的
把这几个指针的值都打出来就知道了
printf("M %p H %p A %p B %p\n", pMan, pHuman, pPersonA, pPersonB);
M 00384E70 H 00384E70 A 00384E70 B 00384E74
把这几个指针的值都打出来就知道了
printf("M %p H %p A %p B %p\n", pMan, pHuman, pPersonA, pPersonB);
M 00384E70 H 00384E70 A 00384E70 B 00384E74
全部回答
- 1楼网友:颜值超标
- 2021-02-12 06:41
我只能说这代码相当蛋疼,从语法意思就是转换成bool型指针后再取值,再隐式转换成char赋给str数组。
在大多数编译器中sizeof(bool)是一个字节,但c++标准并未限定bool的大小必定是一个字节,所以说这个用法是相当蛋疼。如果他的意思是把readbuf的字节都转换成0或1,那他这样写也是完全达不到目的的,如果bool是一个字节,那么str[m]=*(bool*)(readbuf+m)效果相当于str[m]=*(readbuf+m),如果bool不是一个字节,上面就是错误的代码。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |