版权声明:本文为博主原创文章未经博主允许不得转载。 /tian_/article/details/
(1)在基类用virtual声明成员函数为虚函数这样就可以在派生类中重新定义此函数,为它赋予新的功能并能方便被调用。
在类外定义虚函数时不必在定义virtual
(2)在派生类中重新定义此函数,要求函数名函数类型,函数参数个数和类型全部与基类的虛函数相同并根据派
生类的需要重新定义函数体。
c++规定当一个成员函数被声明为虚函数后,其派生类的同名函数都自动成为虚函数洇此在派生类重新声明该
虚函数时,可以加virtual也可以不加,但习惯上一般在每层声明该函数时都加上virtual使程序更加清晰。
如果再派生类中沒有对基类的虚函数重新定义则派生类简单的继承起基类的虚函数。
(3)定义一个指向基类对象的指针变量并使它指向同一类族中需偠调用该函数的对象。
(4)通过该指针变量调用此虚函数此时调用的就是指针变量指向的对象的同名函数。
此时没有将任何函数声明为虛函数所以在Graduate类中diaplay()函数输出时没有pay的值,以为p指针是Student类的本身Student不包括pay数据。
但如果我们想输出pay的值只要把Student类中的display函数声明为虚函数即可,只要把它改为virtual void display()声明为虚函数就行输出的结果为: