留下点回忆
class B{public: DWORD GetLen(){return i;} DWORD i ;};class A{public: DWORD GetLen(){return j;}public: int j ;
}; B b; b.i = 2; A * pA = (A *)&b; int j = pA->GetLen();问j=?
posted on 2011-03-15 14:38 笨笨 阅读(1965) 评论(5) 编辑 收藏 引用 所属分类: 调试
2 回复 更多评论
显然是2,因为A和B的内存布局是一样的, 强制转换之后,A与B对象内存对象无差别 回复 更多评论
@Husiwa 说的好。。。 回复 更多评论
理想的情况下,应该通不过者静态检查或者代码走读为好。 回复 更多评论
@天堂的隔壁 C/C++ 编译器是以内存分配为本位,类型和语法限制其次。 回复 更多评论
Powered by: C++博客 Copyright © 笨笨