当前位置: 首页 > news >正文

C++中组合详解及其作用介绍

案例在平面上两点连成一条直线, 求直线的长度和直线中点的坐标.要求:基类: Dot派生类: Line (同时组合)派生类 Line 从基类 Dot 继承的 Dot 数据, 存放直线的中点坐标Line 类再增加两个 Dot 对象, 分别存放两个端点的坐标Dot 类:1234567891011121314151617#ifndef PROJECT5_DOT_H#define PROJECT5_DOT_H#include iostreamusingnamespacestd;classDot {public:doublex, y;Dot(doublea,doubleb) : x(a), y(b) {};voidshow() {cout x: x endl;cout y: y endl;};};#endif //PROJECT5_DOT_HLine 类:1234567891011121314151617181920212223#ifndef PROJECT5_LINE_H#define PROJECT5_LINE_H#include Dot.hclassLine :publicDot {private:Dot d1;Dot d2;public:Line(constDot d1,constDot d2) : Dot(0, 0), d1(d1), d2(d2) {x (d1.x d2.x) / 2;y (d1.y d2.y) / 2;}voidshow(){Dot::show();cout dot1: ( d1.x , d1.y ) endl;cout dot2: ( d2.x , d2.y ) endl;}};#endif //PROJECT5_LINE_Hmain:123456789101112131415161718#include iostream#include Dot.h#include Line.husingnamespacestd;intmain() {doublea, b;cout Input Dot1: \n;cin a b;Dot dot1(a,b);cout Input Dot2: \n;cin a b ;Dot dot2(a,b);Line l1(dot1, dot2);l1.show();return0;}输出结果:Input Dot1:1 2Input Dot2:4, 6x: 2.5y: 1dot1: (1, 2)dot2: (4, 0)总结类的组合和继承都是重用的重要方式, 可以有效地利用已有类的资源继承是纵向的, 组合是横向的. 通过继承, 我们从基类得到了数据成员. 通过组合, 从别的类得到了成员, 有效地组织和利用现有的类, 减少工作量如果类 A 和类 B 毫不相关, 不可以为了使 B 的功能更多些而让 B 继承 A 的功能如果类 B 有必要使用类 A 的功能. 当 B 是 A 的一种的时候我们使用继承, 当 B 是 A 的一部分时, 我们使用组合
http://www.zskr.cn/news/1360322.html

相关文章:

  • MySQL更新语句执行完整流程(超详细落地版)
  • 杭州博型科技:用3D扫描建模与打印复刻时光,定制你的专属记忆
  • 保姆级教程:手把手教你用163邮箱搞定海豚调度DolphinScheduler的邮件告警(附授权码避坑指南)
  • Python抖音机器人实战指南:3步实现智能颜值检测与自动化运营
  • 分享今日日常
  • ImageJ Trainable Weka Segmentation实战:5步搞定免疫组化阳性/阴性细胞自动计数
  • 国产化项目实战:SpringBoot 2.6.2 + MyBatis-Plus 3.5.2 连接人大金仓Kingbase 8.6.0保姆级教程
  • 设计项目风险提前预判预警程序,拆解创业工作项目,提前识别潜在风险点。
  • TCP三次握手和四次挥手:面试能答不代表真懂
  • 城市地下管网可视化监控管理系统方案
  • (课堂笔记)银行客户画像七大类指标(人行征信报告)
  • LVGL滑块实战:5分钟为你的ESP32智能家居面板添加一个温湿度调节控件
  • 安川大功率重载伺服电机 SGMVV-2BADD2C
  • 如何高效实现Navicat密码安全恢复:开源解密工具技术架构解析
  • 告别handshake timeout:手把手教你配置NVM镜像源,并附上Node.js各版本国内高速下载地址大全
  • 创业公司如何用 Taotoken 控制 AI 应用开发与测试成本
  • 如何高效管理macOS安装文件?这款跨平台工具给你答案
  • STM32F103驱动TFT-LCD屏避坑指南:FSMC时序配置与ILI9341初始化那些事儿
  • 实战踩坑:从360EntSecGroup迁移到xuri/excelize/v2的完整指南
  • 从传统Java后端到AI时代后端:零基础完整转型教程,60天蜕变AI架构师,告别CRUD困境,涨薪跳槽不是梦!
  • 声明式UI与高性能图形渲染:QML技术架构、工业应用与新手入门指南
  • Office RibbonX Editor:让Office界面定制化变得简单高效
  • XDM浏览器插件:解决下载速度瓶颈的终极方案
  • 14002开源:黄大年茶思屋 难题揭榜 第140期 非均匀雷达阵列的高精度高效率计算和排布算法 标准化解题写作框架黄大年茶思屋 难题揭榜 第140期
  • 企业财税合规实战:3步帮你重构账务数据,化解现金流风险
  • 为什么视频代剪辑的质量会影响内容传播效果
  • 14005开源:黄大年茶思屋 难题揭榜 第140期 低复杂度FEC软解码算法 标准化解题写作框架
  • 基于SpringBoot的旅游网站的设计与实现(源码+论文)
  • 14003开源:黄大年茶思屋 难题揭榜 第140期 异构大规模资源协同分配多目标优化问题 标准化解题写作框架
  • AI情报——5.22