多态,第九章,2,回顾,继承 访问控制 继承中的构造函数和析构函数 函数覆盖,3,目标,虚函数 纯虚函数 抽象类 动态绑定 虚析构函数,4,虚函数,基类的指针可以指向派生类的对象 但调用的函数却是基类的函数 虚函数可以解决这个问题,5,示例 2-1,#include class Shapes public:void draw() /基类中的函数cout “绘制基本形状n“; ; class Circle : public Shapes private:int radius; public:void draw() /在派生类中重新定义cout “绘制圆形n“; ;,6,示例 2-2,class Square : public Shapes private:int length; public:void draw() /在派生类中重新定义cout draw();ptr = ,调用Shapes的draw()方法,7,虚函数的定义,希望使用draw( )函数绘制不同对象draw( )函数必须在基类中被声明为虚函数virtual void draw() /基类中的虚函数cout “绘制基本形状n“;,