虚函数的作用

虚函数是为了实现多态。当父类被子类继承后,父类中的某些函数在子类中要重新定义,则声明其为虚函数。例如:
class A
{
.......
    virtual int fun(int a ,char *b);   //实现A功能
.......
};

class B: public A
{
........
    virtual int fun(int a, char *b);    //实现B功能
........
};

A *objA = new(B);
objA.fun();    //这里调用的是:B::fun(int a, char *b),实现的是B功能

//举个例子看看 如何实现多态
#include <iostream>
using namespace std;

class Graph
{
public:
    virtual void draw()=0;
};

class Rectangle:public Graph
{
public:
    void draw()
    {
         cout<<"Draw Rectangle"<<endl;
    }
};

class Circle:public Graph
{
public:
   void draw()
   {
      cout<<"Draw Circle"<<endl;
   }
};


void display(Graph *graph)
{
     graph->draw();
}

int main()
{
    Rectangle rect;
    Circle  circle;
    display(&rect);
    display(&circle);
    system("pause");
    return 0;
}

 有纯虚函数的类叫抽象类,抽象类是为了实现多态。
普通的虚函数是为了子类不同实现,也就是重载了。

原文地址:https://www.cnblogs.com/x-poior/p/5388771.html