虚函数

虚函数是动态联编的基础。虚函数是非static的成员函数
说明虚函数的方法如下:
virtual <类型说明符><函数名>(<参数表>);
虚函数的使用方法是:
1、在基类用virtual声明成员函数为虚函数。
这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用。在类外定义虚函数时,不必再加virtual。
2、在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重新定义函数体。
C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数。因此在派生类重新声明该虚函数时,可以加virtual,也可以不加,但习惯上一般在每一层声明该函数时都加virtual,使程序更加清晰。如果在派生类中没有对基类的虚函数重新定义,则派生类简单地继承其直接基类的虚函数。
3、定义一个指向基类对象的指针变量,并使它指向同一类族中需要调用该函数的对象。
4、通过该指针变量调用此虚函数,此时调用的就是指针变量指向的对象的同名函数。
通过虚函数与指向基类对象的指针变量的配合使用,就能方便地调用同一类族中不同类的同名函数,只要先用基类指针指向即可。如果指针不断地指向同一类族中不同类的对象,就能不断地调用这些对象中的同名函数。这就如同前面说的,不断地告诉出租车司机要去的目的地,然后司机把你送到你要去的地方。
 
纯虚析构函数
纯虚函数是一种特殊的虚函数,它的一般格 式如下:
virtual<类型><函数名>(<参数表>)=0; }
带有纯虚函数的类称为抽象类
抽象类是不能定义对象的,在实际中为 了强调一个类是抽象类,可将该类的构 造函数声明为保护的控制权限
 
虚析构函数:
目的在于使用delete运算符删除一个对象时,能确保析构函数被正确执行。
posted @ 2019-07-25 16:41  小兵07  阅读(196)  评论(0编辑  收藏  举报