5.1多态性概述:
   
     
   
按实施的机制,多态可以分为两类:
     
   
     
   
    虚函数的定义:
   
    (前面思维是
    
     
      虚基类
     
    
    ,别搞混了)
   
     
   
运行时多态的条件:
     
   
运行时的多态:

基类中有show(),派生类中也有show()。都定义为虚函数
运行时
才知道s4指向c, c 时circle类型的,所以才会调用circle中的show()
运行时多态

    5.2虚析构函数:
   
     
   
虚的析构函数



没有释放
继承类
申请的空间pb是base 的指针,所以delete pb时只会释放基类的空间。
解决方法:
将两个析构函数都定义为虚的。


派生类的空间被释放。
     
   
    5.3纯虚函数和抽象类
   
在基类中定义的area()函数,只是为了后面提供一个统一的接口,
实现多态
。
不需要有函数体。

当调用getArea()时,根据传进去的参数,多态的选择调用那个类中的area()。

派生类定义后,才能进行调用,
有纯虚函数的类称为抽象类,抽象类不能实例化对象

     
   
 
