爲了在這裏省略一些重複並縮小問題的範圍,我將很快涵蓋我相信我理解的內容。一個班級如何知道其成員的大小?
一個類是一個指向不同大小變量的指針,稱爲成員。如果成員大小不同,則它們將被分配到最大成員的大小相同的空間。
所以在內存中他們都是相同的大小,因此我的問題:一個班級如何知道其成員的大小?
例子:
class foo
{
short a = 99;
int b = 88;
};
int main()
{
foo f;
for (int i = 0; i < sizeof(f); i++)
cout << (int)((char*)&f)[i] << " ";
return 0;
}
// Output:
// 99 0 -1 70 88 0 0 0
//
// where -1 and 70 are random bytes in memory
所以我稱讚那些主要問題誰不明白:如何˚F讀取構件當知道怎麼回事短(99 0)而不是int(99 0 -1 70)?
一個類不是一個指針,下面沒有任何意義。你似乎在混淆階級和工會。 – Mat
停止鑄造。如果你知道自己在做什麼,那就很棘手,而你顯然不知道。你所做的是未定義的行爲,你不能從輸出中推斷出任何東西。 – MSalters