很久之前就学习了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(){ }
};
内存中分配如下表