C++ 多重繼承 多態函數 內存佈局

 僅用於 VS 2008 環境:

內存分佈說明:

------------------------------------------------------------------------------------------------------------

p_a :   vp_tbl  (4 byte)  ---->  [0]: ca::queryinterface

           int  ca_a;                     [1]: ca::addref

                                               [2]: ca::release

                                               [3]: ca::test_a

 

 -----------------------------------------------------------------------------------------------------------

p_b:    vp_tbl (4 byte) ----->   [0]:cb::queryinterface 

          int  cb_b;                      [1]:cb::addref

                                               [2]:cb::release

                                               [3]:cb::test_b

 

 ------------------------------------------------------------------------------------------------------------

p_bb:    vp_tbl (4 byte) -----> [0]: con:queryinterface

                                               [1]: con::addref

                                               [2]: con::release

                                               [3]: con::test_a

                                               [4]: con::qcon                    // 新添的兩個放在第一個父類的 vp_tbl 後面;

                                               [5]: con::test_con

              vp_tbl (4 byte) ----> [0]:   xxx                          // 函數同名,不使用, 可能指向 con::addref..

                                               [1]:  xxx                           // 同上

                                               [2]:  xxx

                                               [3]:con::test_b

              int   ca_a;

              int   cb_b;

              int   con_i;

------------------------------------------------------------------------------------------------------------

                           

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章