[問題] more effective c++ -- item 24

看板C_and_CPP (C/C++)作者 (薩哈拉雅)時間14年前 (2012/05/25 23:17), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
問題(Question): 這個問題是有關 More Effective C++, item24的, 可能要請各位先進去翻一下這個項目 這個項目是簡略的介紹說有virtual function造成的cost(多了vptr,vtable,RTTI) 以及在multiple inheritance/virtual inheritance中所造成的cost http://home.ustc.edu.cn/~zixin/More%20Effective%20C++/MEC/MI24_FR.HTM 小弟的問題在於, 在single inheritance中, 一個object"只"需要一個vptr 那在這個項目裡面說, multiple/virtual inheritance要三個(如果經過optimization), 就我的想法覺得是, mutiple/virtual inheritance就像來自兩個繼承體系的兩個object 所以應該可以是兩個vptr(這個想法來自於這個項目一開始說的,single inheritance 對於一個object需要一個vptr). 基本上對於多型的支援以及casting, 似乎兩個vptr 就可以做到, 是不是因為virtual inheritance造成要有個指標指向virtual base才造成 需要兩個以上的vptr呢??? 另外這個項目所說的最佳化使得原本要四個vptr可以變成 三個的原理也不是很懂...... 希望各位先進能幫小弟解答疑惑一下, 雖然說compiler實作部份不是必須的知識 但是也是希望能懂盡量多懂一點, 多思考一下也不錯啦~~~ 希望不吝給予小弟一點指引阿~~~ 感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.211.42

05/26 00:06, , 1F
剛找了一下有圖片的More Effective C++...
05/26 00:06, 1F

05/26 00:07, , 2F
http://ppt.cc/EIfI item24在96頁~
05/26 00:07, 2F

05/26 00:09, , 3F
原Po指的地方,應該是從An oddity in the above.. 這裡
05/26 00:09, 3F

05/26 00:10, , 4F
開始
05/26 00:10, 4F

05/26 01:09, , 5F
沒錯~~~XD 抱歉圖片不見了 請各位址點一下迷津!!!
05/26 01:09, 5F
文章代碼(AID): #1FlwAFn2 (C_and_CPP)
文章代碼(AID): #1FlwAFn2 (C_and_CPP)