其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Implementation of Polymorphism

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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();




相关文章

相关软件