没有系统性学习C++,所以工作中使用特别别扭,也不是不会,也不是不懂,但读代码和写代码时总有点生疏感。所以该补还是补起来,现在想想还是学生时代学习的知识更加扎实,那是融入骨子里的。
virtual函数,子类可以Overide‘
定义C++中虚函数的关键字
在使用virtual之前,C++对成员函数使用静态联编,而使用virtual,并且在调用函数时是通过指针或引用调用,C++则对成员函数进行动态联编。
概念:
(1)以继承为前提。
(2)在父类中用virtual修饰函数。
(3)在子类中重写该虚函数。
作用:
(1)以父类的引用作为函数的参数类型。
(2)调用该函数传递子类对象。
(3)在函数中可以通过该父类的引用调用到子类中重写的虚函数。
纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。
一般而言纯虚函数的函数体是缺省的,但是也可以给出纯虚函数的函数体(此时纯虚函数变为虚函数),这一点经常被人们忽视,调用纯虚函数的方法为baseclass::virtual function.