C语言和C++中类的组合概念以及实例用法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"C语言和C++中类的组合概念以及实例用法",在日常操作中,相信很多人在C语言和C++中类的组合概念以及实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年11月07日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_Hmain:
#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安全错误
数据库的锁怎样保障安全
吉林大学数据库原理+视频
电脑网络安全设置在哪
报文网络技术
不知道数据库怎么用
盘龙下载软件开发
软件开发线上培训
未连接服务器华为是因为
网络安全微视频该怎么拍
哪里可以找到好的服务器
计算机网络技术教程ppt
电信服务器无法管理光猫
edge 代理服务器
软件开发售前技术
如何连接生产数据库
阿根廷债务人数据库
服务器宽带2m
私企软件开发项目主管
互联网科技小程序
云服务器部署执法仪
一句话形容软件开发
unix系统用什么数据库软件
jdbc数据库管理工具
深圳新伯乐网络技术有限公司
网络安全课程思政获奖教案
网络安全事件处置工作流程图
鸾曦互联网科技
中山市网络安全部门
中科软软件开发有限公司
应用软件开发公司推荐
电脑连接网络安全关键字