一、多态性的概念 多态性分为:静态多态性和动态多态性 静态多态性 在程序编译时,系统就决定调用哪个函数,又称为编译时的多态性 函数重载、运算符重载 动态多态性 在程序运行过程中才动态地确定操作所针对的对象,又称为运行时的多态性 动态多态性是通过虚函数来实现的 二、虚函数 在类的继承层次结构中,在不同的层次中可以出现名字相同,参数个数和类型都相同而功能不同的函数,编译系统按照同名成员的隐藏原则决定调用的对象 虚函数 在类的继承层次结构中,在不同的层次中可以出现名字相同,参数个数和类型都相同而功能不同的函数,编译系统按照同名成员的隐藏原则决定调用的对象 C++中的虚函数允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数 虚函数的使用方法 在基类中用virtual声明成员函数为虚函数,就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用 三、多态性的概念 多态性分为:静态多态性和动态多态性 静态多态性 在程序编译时,系统就决定调用哪个函数,又称为编译时的多态性 函数重载、运算符重载 动态多态性 在程序运行过程中才动态地确定操作所针对的对象,又称为运行时的多态性 动态多态性是通过虚函数来实现的 四、虚函数的使用方法 当一个成员函数被声明为虚函数后,其派生类的同名函数都自动成为虚函数,因此在派生类中重新声明该虚函数时,可以加virtual,也可以不加virtual 定义一个指向基类的指针,并使它指向同一类族中的某一对象,通过该指针变量调用此虚函数,此时调用的就是指针变量指向对象的同名函数 一个成员函数被声明为虚函数后,在同一个类中就不能再定义一个非virtual的但与该虚函数具有相同参数和返回值的同名函数 虚函数的使用是通过动态关联实现的 五、在什么情况下使用虚函数 首先看成员函数所在的类是否会作为基类,然后看成员函数在类的继承后有无可能被更改功能,如果希望更改功能,一般应将它声明为虚函数 如果成员函数在类被继承后功能不需修改或派生类用不到该函数,则不要把它声明成虚函数 应考虑对成员函数的调用是通过对象名还是通过基类指针或引用去访问,如果是通过基类指针或引用去访问的,应当声明为虚函数
新闻热点
疑难解答
图片精选