C语言和C++中类的组合概念以及实例用法
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"C语言和C++中类的组合概念以及实例用法",在日常操作中,相信很多人在C语言和C++中类的组合概念以及实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年01月31日C语言和C++中类的组合概念以及实例用法
这篇文章主要介绍"C语言和C++中类的组合概念以及实例用法",在日常操作中,相信很多人在C语言和C++中类的组合概念以及实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C语言和C++中类的组合概念以及实例用法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
目录
概述
案例
总结
概述
组合 (Composition) 指在一个类中另一类的对象作为数据成员.
案例
在平面上两点连成一条直线, 求直线的长度和直线中点的坐标.
要求:
基类: Dot
派生类: Line (同时组合)
派生类 Line 从基类 Dot 继承的 Dot 数据, 存放直线的中点坐标
Line 类再增加两个 Dot 对象, 分别存放两个端点的坐标
Dot 类:
#ifndef PROJECT5_DOT_H#define PROJECT5_DOT_H#includeusing 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#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 的一部分时, 我们使用组合
到此,关于"C语言和C++中类的组合概念以及实例用法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
组合
实例
概念
语言
C++
直线
学习
功能
坐标
成员
数据
更多
有效
两个
中点
对象
案例
帮助
实用
重要
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网页制作所需数据库
洛阳百商网络技术
北京点创网络技术
美国软件开发政策
数据库访问怎么设置
长春vr软件开发公司
豪华suv汽车销量数据库
金华app软件开发的报价
油之源网络安全
网络安全论文研究方向
土壤墒情软件开发
首届网络安全大会论坛
怎么向服务器里面刷矿石
品高软件开发者
灌云品质网络技术推荐咨询
服务器怎么整理现存量
王者荣耀与服务器断开
上海小佘互联网科技
服务器运行中断电重启
互联网网络安全ppt
宁夏等保网络安全方案
网络数据库项目开发技术
两融软件开发
沈阳标准机架服务器
数据库安装服务器配置
软件开发数据验证报告模板
rdp网络技术
无锡系统软件开发定做价格
细菌蛋白已有的数据库
事业单位网络安全心得体会