留下點回憶
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 笨笨 閱讀(1973) 評論(5) 編輯 收藏 引用 所屬分類: 調試
2 回復 更多評論
顯然是2,因為A和B的內存布局是一樣的, 強制轉換之后,A與B對象內存對象無差別 回復 更多評論
@Husiwa 說的好。。。 回復 更多評論
理想的情況下,應該通不過者靜態檢查或者代碼走讀為好。 回復 更多評論
@天堂的隔壁 C/C++ 編譯器是以內存分配為本位,類型和語法限制其次。 回復 更多評論
Powered by: C++博客 Copyright © 笨笨