类的虚函数和多态性
在一个含有基类和派生类的程序中,往往各个类中相应的成员函数具有相同的函数名、返回类型和参数表,但函数体不同(语义不同)。在每个类中都有定义实现相应功能的成员函数。
当一个派生类的对象的地址赋给一个基类的指针后,基类指针只能访问所属的成员函数,不能访问该派生类对象中与基类成员函数相同的成员函数。但在实际应用中,需要把一个基类或派生类的对象的地址赋给一个基类的指针后,基类指针能够访问基类或派生类中与基类成员函数相同的成员函数。解决问题的方法是使用虚函数,把基类和派生类中相同的函数同时定义为虚函数。
虚函数的定义方法是在成员函数前加关键字 virtual 。
当基类和派生类中相同的函数定义为一组虚函数后,通过基类指针可以调用任一类中虚函数的执行。
这种通过调用基类的虚函数就能够调用一组虚函数中任一个虚函数的执行的技术称为多态性。
在一个含有基类和派生类的程序中,往往各个类中相应的成员函数具有相同的函数名、返回类型和参数表,但函数体不同(语义不同)。在每个类中都有定义实现相应功能的成员函数。
当一个派生类的对象的地址赋给一个基类的指针后,基类指针只能访问所属的成员函数,不能访问该派生类对象中与基类成员函数相同的成员函数。但在实际应用中,需要把一个基类或派生类的对象的地址赋给一个基类的指针后,基类指针能够访问基类或派生类中与基类成员函数相同的成员函数。解决问题的方法是使用虚函数,把基类和派生类中相同的函数同时定义为虚函数。
虚函数的定义方法是在成员函数前加关键字 virtual 。
当基类和派生类中相同的函数定义为一组虚函数后,通过基类指针可以调用任一类中虚函数的执行。
这种通过调用基类的虚函数就能够调用一组虚函数中任一个虚函数的执行的技术称为多态性。