很久之前就学习了c++继承中多态,但始终没有理解多态性质。上周看c++ primer第四版看到讲解的虚函数,才明白了虚函数展示了继承多态,多态性表示父类指针(实际指向派生类)调用虚函数,实际调用的的是派生类重写的虚函数,重写体现了继承多态性。理解虚函数,重点理解虚函数表,表中指针具体指向哪个类的成员函数。引用侯捷《深入浅出mfc》中一小节:

class A

{

  public: 

     int m_data1;

     int m_data2;

     void fun1(){}

    void fun2(){}

    virtual void vfun1(){}

    virtual void vfun2(){}

};

class B: public A

{

    int m_data3;

    void fun2(){}

    virutal void vfun1() { }

};

 

public class C :public B

{

   public:

   int m_data1;

   int m_data4;

   void fun2(){}

   virtual void fun1(){ }

};

内存中分配如下表

posted on 2014-07-11 15:49  RedLight  阅读(217)  评论(0编辑  收藏  举报