看板 Programming 關於我們 聯絡資訊
※ 引述《legnaleurc (CA)》之銘言: : ※ 引述《ya790206 (殘雲奪月)》之銘言: : 恕刪 : : 結果是4 8 : : 為何是八之前有人問過,不過我不懂 : : DevC++的結果 : 我認為它的sizeof的計算方式很有趣 : 我把B改成虛擬繼承A,印出來就變成4 12 : 然後如果A的x是static int : 印出來會變成1 1 : 不知道是怎麼算的 我沒搞錯的話 虛擬繼承會多出virtual table的空間 所以B多出了virtual table的4 byte 至於那個8是因為alignment的問題 請往前查 如果A的x是static的話 A就沒有member variable了 所以A變成一個"空"物件 好像最近C_and_CPP版還是這裡有篇文有說這時似乎是規定它的sizeof是1的樣子(不確定) B則是比(空的)A多一個char 所以就是那個char的1 -- 実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」 亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」 実琴:「難道你沒有男人的尊嚴了嗎?!」 亨:(斷然道)「沒有。在節衣縮食生活吃緊學生面前,沒有那種東西。」 --プリンセス・プリンセス 第二話 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.44.21
yzugsr:我記得inside C++ object裡有這個議題 123.193.35.97 02/13 23:56
yzugsr:可是詳情我沒記起來 有興趣可以找書看 123.193.35.97 02/13 23:57