分为两类:
1.用于函数声明:
a.基类中的虚函数声明:形参列表中定义的基类参数、但实际指向的是派生类参数时,将会表现为派生类对象行为(即表现派生类的特殊性);
b.定义基类中的虚析构函数,这样在使用new在自由存储区中实例化子类派生类对象时,如果将其赋给基类指针,可避免delete用于基类指针时编译器不会调用派生类的析构函数的情况发生;
c.抽象基类中的纯虚函数,作为定义派生类的接口;
2.用于类的继承————解决菱形问题:从Base类派生出Derived1和Derived2类时,如果使用了关键字virtual,则从Derived1和Derived2类中派生出Derived3类时,每个Derived3类实例只包含一个Base实例。