这本书应该算这边,已经是读的第三遍了,一直用本子做笔记,突然举得我应该把笔记心的写在博客上,便于自己的翻阅和记忆;真的是每一遍都有不同的收获,前两遍在阅读的时候,我真的还不太懂什么是C++,什么是继承、组合、virtual函数、类,但我读这边时,也就是这几天,突然举得自己有很大的提高,希望这是我开发生涯的一个好的开始,自己一定要再接再厉,不断地修炼自己;
第12章 多态和虚函数
在同一个类中是不能定义两个名字相同、参数个数和类型都相同的函数,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型相同而功能不同的函数。这是合法的,因为不在同一个类中。编译系统按照同名覆盖的原则决定调用的对象。
虚函数的作用,是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
virtual viod display();
当把基类的某个成员函数声明为虚函数后,允许在其派生类中对该函数重新定义,赋予它新的功能,并且可以通过指向基类的指针指向同一类族中的不同类的对象,从而调用其中的同名函数。由虚函数实现动态多态性就是:同一类族中不同类的对象,对同一函数调用作出不同的相应。
虚函数的使用方法是:
(1)在基类用virtual声明成员函数为虚函数。这样可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地调用。
在类外定义虚函数时,不必再加virtual.
(2)在派生类中重新第一次函数,要求函数名、函数类型、函数参数个数和类型