概述
c++中一个重要的特点就是代码的重用,为了代码重用,有两个非常重要的手段,一个是继承,一个是组合
组合 (Composition) 指在一个类中另一类的对象作为数据成员.
案例
在平面上两点连成一条直线, 求直线的长度和直线中点的坐标.
要求:
- 基类: Dot
- 派生类: Line (同时组合)
- 派生类 Line 从基类 Dot 继承的 Dot 数据, 存放直线的中点坐标
- Line 类再增加两个 Dot 对象, 分别存放两个端点的坐标
Dot 类:
#ifndef PROJECT5_DOT_H
#define PROJECT5_DOT_H
#include <iostream>
using namespace std;
class Dot {
public:
double x, y;
Dot(double a, double b) : x(a), y(b) {};
void show() {
cout << "x: " << x << endl;
cout << "y: " << y << endl;
};
};
#endif //PROJECT5_DOT_H
Line 类:
#ifndef PROJECT5_LINE_H
#define PROJECT5_LINE_H
#include "Dot.h"
class Line : public Dot {
private:
Dot d1;
Dot d2;
public:
Line(const Dot &d1, const Dot &d2) : Dot(0, 0), d1(d1), d2(d2) {
x = (d1.x + d2.x) / 2;
y = (d1.y + d2.y) / 2;
}
void show(){
Dot::show();
cout << "dot1: (" << d1.x << ", " << d1.y << ")" << endl;
cout << "dot2: (" << d2.x << ", " << d2.y << ")" << endl;
}
};
#endif //PROJECT5_LINE_H
main:
#include <iostream>
#include "Dot.h"
#include "Line.h"
using namespace std;
int main() {
double a, 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();
return 0;
}
输出结果:
Input Dot1:
1 2
Input Dot2:
4, 6
x: 2.5
y: 1
dot1: (1, 2)
dot2: (4, 0)
总结
- 类的组合和继承都是重用的重要方式, 可以有效地利用已有类的资源
- 继承是纵向的, 组合是横向的. 通过继承, 我们从基类得到了数据成员. 通过组合, 从别的类得到了成员, 有效地组织和利用现有的类, 减少工作量
- 如果类 A 和类 B 毫不相关, 不可以为了使 B 的功能更多些而让 B 继承 A 的功能
- 如果类 B 有必要使用类 A 的功能. 当 B 是 A 的一种的时候我们使用继承, 当 B 是 A 的一部分时, 我们使用组合
相关推荐:
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
什么是seo手段,seo的具体手段 ,中国ai 企业
seo点击工具,seo排名点击软件推荐 ,ai狂躁
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
不利于seo是什么,不属于seo对网店推广的作用 ,ai渐变下载
AI一键生成文章网页版,让内容创作更简单高效
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
seo规范是什么,seo行业标准 ,啊龙ai音乐
什么是seo发外链,seo外链类型有哪些 ,小小苏ai
ChatGPT充值打不开?这几招教你轻松解决问题!,免费的ai写作绘图
SEO如何做?全方位解析提升网站排名的秘诀,AI翻译好处
SEO排序:如何让你的网页在搜索引擎中脱颖而出,平谷抖音seo推广招聘
SEO教研:数字营销新趋势,提升网站流量与转化率的关键,齐鲁证券网站建设
优化收费,助力企业提升效益,实现共赢,宜州餐饮网站建设
什么是蜘蛛弛?揭秘这个SEO优化背后的神秘工具,南沙seo优化排名价格
seo词库优化,搜索词条优化 ,ai点选择
互联网时代的“搜索截流”新玩法:如何抓住流量红利,甘孜做优化网站软件
打造内容创作新时代:有言AI生成助力创作者释放灵感
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi
好用的人工智能AI软件推荐,让你的生活更智能!
seo需要干什么,seo需要具备什么知识 ,ai梦境档案世岛大宅
SEO查:如何通过精准优化让网站流量飞速增长,吉林推广营销怎么样
Bing搜索的注意事项-提高搜索效率与准确性,轻松获取所需信息,最近ai写作软件推荐
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
ChatGPT点不了?背后的真相与解决方法,ai.520523
在线AI文章:为您打造全新内容创作体验
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
seo相关知识是什么,seo相关技术 ,ai写作讯飞星火认知大模型
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
SEO模板:提升网站排名,助你快速抢占搜索引擎流量高地,选择seo职业缺点
ChatGPT与讯飞:AI语音与智能对话的完美融合,ai直角变圆角
如何查文章AI率?全面解析AI文章检测工具及技巧
仿写AI:智能时代的创作革命,洛江区移动房网站推广
ChatGPT为什么打不开了?揭秘背后的原因与解决办法,ai业务后端
SEO站外优化策略:提升网站排名的关键因素,遵义公司网站推广
SEO要好,网站流量翻倍的关键秘诀,品牌网站建设关键词优化
SEO埋词技巧,如何提升网站排名?,贵州营销推广方法
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
什么是seo概念,什么是seo,sem ,ai音标谐音
SEO新站优化指南:快速提升排名的必备技巧,海珠网站推广哪家有名
【BVIP尊享体验:超越奢华,开启专属未来】,珠宝网站建设思路
SEO优化如何提升网站排名,驾驭搜索引擎流量,三亚网站推广方法
SEO做网站点击:提升网站流量的关键策略,国内ai写作论文
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
为什么要监控SEO效果,国家为什么要监控个人 ,抚顺ai系统
文章写作AI:让创作更高效、精准的智能助手