- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C第12章多态性与虚函数汇编
第12章 多态性与虚函数 本章主要内容 多态性的概念 多态性(polymorphism)是面向对象程序设计的重要特征之一。 多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。 多态的实现: 函数重载 运算符重载 虚函数 多态性是“一个接口,多种方法”。 静态多态性和动态多态性 多态性分为两类: 静态多态性和动态多态性。 一个典型的例子 例12.1: 先建立一个Point(点)类,包含数据成员x,y(坐标点)。 以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径)。 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高)。 要求编写程序,重载运算符“”和“”,使之能用于输出以上类对象。 解题思路: 对于一个比较大的程序,应当分成若干步骤进行。 先声明基类 //声明类Point class Point { public: Point(float x=0,float y=0);//有默认参数的构造函数 void setPoint(float,float); //设置坐标值 float getX( ) const {return x;} //读x坐标 float getY( ) const {return y;} //读y坐标 friend ostream operator(ostream ,const Point );//重载运算符“” protected: //受保护成员 float x,y; }; 之成员函数 测试Point类程序 //声明派生类Circle class Circle:public Point //circle是Point类的公用派生类 { public: Circle(float x=0,float y=0,float r=0); //构造函数 void setRadius(float); //设置半径值 float getRadius( ) const; //读取半径值 float area ( ) const; //计算圆面积 friend ostream operator(ostream ,const Circle );//重载运算符“” private: float radius; }; 之成员函数 测试Circle类程序 //声明派生类Cylinder class Cylinder:public Circle// Cylinder是Circle的公用派生类 { public: Cylinder (float x=0,float y=0,float r=0,float h=0);//构造函数 void setHeight(float); //设置圆柱高 float getHeight( ) const; //读取圆柱高 float area( ) const; //计算圆表面积 float volume( ) const; //计算圆柱体积 friend ostream operator(ostream,const Cylinder);//重载运算符“” protected: float height; //圆柱高 }; 之成员函数 测试Cylinder类程序 12.3 虚函数 首先看一个例子_例12.2 12.3 虚函数 首先看一个例子_例12.2 //主函数 int main() { Student stud1(1001,″Li″,87.5); //定义Student类对象stud1 Graduate grad1(2001,″Wang″,98.5,563.5); //定义Graduate类对象grad1 Student *pt=stud1; //定义指向基类对象的指针变量pt pt-display( ); pt=grad1; pt-display( ); return 0; } 若对程序作一点
您可能关注的文档
- ATO铝合金轮毂电镀WholePresentationJul03(WheeltechTraining).ppt
- 【备考导航】2016届高三物理二轮复习专题辅导与应用(+课时过关)第1部分专题五物理实验第1讲.ppt
- BLARNEYSTONE.pptx
- 【备考导航】2016届高三物理二轮复习专题辅导与应用(+课时过关)第1部分专题六选考模块.ppt
- 【备考导航】2016届高三物理二轮复习专题辅导与应用(+课时过关第1部分专题一力与物体的平衡第1讲.ppt
- 【备战策略】2016中考化学一轮复习教材梳理阶段练习第18讲金属的化学性质鲁教版.ppt
- blood.ppt
- 【多彩课堂】2015-2016学年高中数学人教A版选修1-1:3.2.1《几个常用函数的导数》.ppt
- 【备课】2012年高二数学新人教A版选修2-1:1.3《简单的逻辑联结词(二)》.ppt
- 【备考导航】2016届高三物理二轮复习专题辅导与应用(+课时过关)第1部分专题三电场和磁场第2讲.ppt
文档评论(0)