Re: C++ overriding/overriding的問題
※ 引述《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
推
02/13 23:56, , 1F
02/13 23:56, 1F
→
02/13 23:57, , 2F
02/13 23:57, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 8 篇):