[問題] more effective c++ -- item 24
問題(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
05/26 00:06, 1F
→
05/26 00:07, , 2F
05/26 00:07, 2F
→
05/26 00:09, , 3F
05/26 00:09, 3F
→
05/26 00:10, , 4F
05/26 00:10, 4F
→
05/26 01:09, , 5F
05/26 01:09, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章