C学习笔记2-c与c 实现程序的比较.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 面

文档评论(0)

seunk + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档