示例22 class Square public Shapes private int length public: void draw o //在派生类中重新定义 cout<<"绘制正方形\ void main() Circle c 调用 Shapes Square s 的draw0)方 Shapes* ptri 法 ptr =&ci ptr->draw)i ptr &s ptr->drawoi 6 北大青鸟
6 示例 2-2 class Square : public Shapes { private: int length; public: void draw() //在派生类中重新定义 { cout << "绘制正方形\n"; } }; void main() { Circle c; Square s; Shapes* ptr; ptr = &c; ptr->draw(); ptr = &s; ptr->draw(); } 调用Shapes 的draw()方 法
虚函数的定义 希望使用raw)函数绘制不同对象 draw()函数必须在基类中被声明为虚函数 virtual void draw o //基类中的虚函数 cout<<"绘制基本形状\n 北大青鸟
7 虚函数的定义 • 希望使用draw( )函数绘制不同对象 • draw( )函数必须在基类中被声明为虚函数 virtual void draw() //基类中的虚函数 { cout << "绘制基本形状\n"; }