- 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学习笔记2-c与c 实现程序的比较
CC++学习笔记2
我们研究一下继承和虚函数。
比如我们需要求正方形、长方形的周长、面积:
选择1计算长方形
选择2计算正方形
选择3退出
其他无效
我们做一个继承实现,父类矩形,子类有正方形、长方形继承矩形
C++的继承语法如下:
矩形
class Rectangle
正方形
class Square: public Rectangle
长方形
class Oblong: public Rectangle
对正方形、长方形求面积、周长。面积公式相同,在矩形父类完成,函数area();周长公式不同,在各个子类种实现。这里有一个虚函数side()。
/** * 求边长 */virtual int side()=0; 让函数side()=0;是在此定义,由子类实现。类似于Java的抽象父类,指定需要子类实现的方法。
矩形类:
/** * 矩形 */class Rectangle {protected: int a; // a边 int b; // b边public: /** * 求面积 */ int area() { return a * b; } /** * 求边长 */ virtual int side()=0;}; 设置了a、b两边且为protected供子类直接使用,给出了求面积的函数实现area(),同时定义了求边长的函数side(),要求函数side()由子类实现。
正方形类:
/** * 正方形 */class Square: public Rectangle {public: /** * 设置边 */ void setA(int a) { this-a = a; this-b = a; } /** * 求边长 */ virtual int side() { return 4 * a; }}; 实现了求边长函数side(),同时加入设置边函数setA(int a)。
长方形类:
/** * 长方形 */class Oblong: public Rectangle {public: /** * 设置a边 */ void setA(int a) { this-a = a; } /** * 设置b边 */ void setB(int b) { this-b = b; } /** * 求边长 */ virtual int side() { return 2 * a * b; }}; 实现了求边长函数side(),同时加入设置边函数setA(int a)和setB(int b)。
根据输入做相应计算:
/** * 计算 */inline void calculate() { int chioce; // 选项 int a; // a边 int b; // b边
Oblong o; // 长方形 Square s; // 正方形
cout endl; cout 选择矩形类型: endl; cout 1-长方形 endl; cout 2-正方形 endl; cout 3-退出 endl;
cin chioce;
switch (chioce) { case 1:
cout 输入a边:; cin a; cout 输入b边:; cin b;
o.setA(a); o.setB(b);
cout 面积为: o.area() endl; cout 周长为: o.side() endl;
calculate(); break; case 2:
cout 输入a边:; cin a;
s.setA(a);
cout 面
您可能关注的文档
- 43第十七章 危重病人的抢救技术洗胃吸痰.ppt
- 7新版PEP小学英语六年级上册unit5_What_does_he_do_A_let's_learn.ppt.ppt
- 5第3-4课第三章第三节交通标线.ppt
- 90煤炭企业实施erp存在问题与解决对策.ppt
- afp病例监测报告 佛山市三水区疾病预防控制中心 ppt课件.ppt
- c 课程设计(颜色版)(C course design (Color Edition)).doc
- c 链表类模板的实现(清华大学出版社 c 语言程序设计第4版)(课本)(C linked list class template implementation (Tsinghua University press c language programming fourth edition) (Textbooks)).doc
- Conducting Research on Diverse Students in Science Learning 进行不同的学生在科学学习的研究.ppt
- CorelDraw X4平面设计教程 教学课件 ppt 作者 邹利华 项目6 coreldraw印刷知识.ppt
- DB11T-1403-2017火葬场二噁英类污染防治技术规范.DOC.doc
- Dynamic Performance Measurement Systems - Strathprints The 动态性能测试系统- Strathprints的.doc
- gb-50325-2001民用建筑工程室内环境污染控制规范1-2_室内污染防治专家_新浪博客(Specification for 1-2_ indoor pollution control expert _ Sina blog for indoor environmental pollution control of civil bu...doc
文档评论(0)