Implementation of Polymorphism

类别:编程语言 点击:0 评论:0 推荐:

class Class1
{
  public:
    m_data1;
    m_data2;
    memfunc();
    virtual vfunc1();
    virtual vfunc2();
    virtual vfunc3();
};


Class1 object instance:

   ━━━━━━━━━
  ┃  vptr    ┃ ──>      vtable
       ━━━━━━━━━       ━━━━━━━━━  
     ┃    m_data1               ┃     ┃    (*vfunc1)()          ┃──>Class1::vfunc1()
      ━━━━━━━━━         ━━━━━━━━━
    ┃    m_data2               ┃     ┃ (*vfunc2)()             ┃──>Class1::vfunc2()
      ━━━━━━━━━         ━━━━━━━━━
                                                   ┃ (*vfunc3)()              ┃ ──>Class1::vfunc3()
                                                     ━━━━━━━━━
class Class2: public Class1 {

  public:
    m_data3;
    memfunc();
    virtual vfunc2();
 
};
Class2 object instance:
    ━━━━━━━━━
   ┃  vptr    ┃──>      vtable
    ━━━━━━━━━         ━━━━━━━━━  
   ┃    m_data1              ┃     ┃ (*vfunc1)()             ┃──>Class1::vfunc1()
    ━━━━━━━━━         ━━━━━━━━━
   ┃    m_data2              ┃     ┃ (*vfunc2)()             ┃──>Class2::vfunc2()
    ━━━━━━━━━         ━━━━━━━━━
   ┃    m_data3              ┃     ┃ (*vfunc3)()             ┃──>Class1::vfunc3()
    ━━━━━━━━━         ━━━━━━━━━           Class2::memfunc();

本文地址:http://com.8s8s.com/it/it23951.htm