[問題] 多重繼承疑惑

看板C_and_CPP作者 (我愛阿蓉)時間16年前 (2010/02/11 17:01), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/3 (看更多)
有點走火入魔了.... 現在試著了解一下多重繼承 http://nopaste.csie.org/5f8d3 這是不使用虛擬繼承跑跑看的結果 發現new的 和 直接用物件 印出來的結果竟然有差異 先拿物件的方式印來看 A::a 分給B::a 和C::a 因為D先繼承C 所以A::a和C::a是同一個變數 位址一樣...可以接受(這也是更改繼承順序得到的心得....) 但是我用new來看結果發現A::a 是一個 B::a和C::a竟然是一樣 很奇怪 於是我把C和B class都加上virtual public: http://nopaste.csie.org/3e47e 物件的方式印出 全部都一樣 恩~可以接受 但是用new的方式印 奇怪A::a 又和其他不一樣了? 是我cout寫錯嗎 new的和用物件的方式怎麼會有差異 請教一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222

02/11 20:11, , 1F
現在有支援多重繼承的語言大概只剩下C++ 建議你別把時間
02/11 20:11, 1F

02/11 20:11, , 2F
花太多在這上面
02/11 20:11, 2F

02/11 23:55, , 3F
你問的問題其實 13 年前的書上都有寫,每個都回到你懂等於
02/11 23:55, 3F

02/11 23:55, , 4F
要把半本書 key 一遍...
02/11 23:55, 4F

02/12 00:19, , 5F
Inside the C++ Object Model ?
02/12 00:19, 5F

02/12 00:25, , 6F
嗯,是那本沒錯。
02/12 00:25, 6F

02/12 00:25, , 7F
包括虛擬繼承的 bptr 都會講。
02/12 00:25, 7F
文章代碼(AID): #1BSyTHFN (C_and_CPP)
文章代碼(AID): #1BSyTHFN (C_and_CPP)