指针通过强制类型转换以后,指针中的值 也就是地址会发生变化吗?
3条回答 默认 最新
- sdghchj 2022-09-30 11:27关注
这个涉及到C++对象内存模型,建议你去找一下有本老外写的书看看。
多继承时,比如D多继承了A和B,但B并没有继承自A,那么D的内存模型里,A在最前(按继承顺序A在前),B在中间,D本身定义的成员在最后,也即AB是D的一部分,对D对象取地址时,自然是得到整个对象的首地址,转成A时不会有变化,但转成B时,因为B并不继承自A也即B是不包含A的成员的,所以必然会发生地址偏移,把A的部分偏移掉,才能指向B那部分的首地址。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录