C语言和C++中类的组合概念以及实例用法
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍"C语言和C++中类的组合概念以及实例用法",在日常操作中,相信很多人在C语言和C++中类的组合概念以及实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2024年11月27日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安全错误
数据库的锁怎样保障安全
校舍安全 网络安全
僵尸毁灭工程服务器设置多大内存
上海凡事网络技术
网络安全本科专业 申报
数据库基数和度数
启梵互联网科技ty
不想搞信息网络安全了
3D视频软件开发
数字化转型为什么要关注网络安全
现代软件开发技术
如何开启远程服务器
如何远程访问数据库
网络安全关注的范围有哪些
未加密美国数据库
国际软件开发技术基础实验
汉中网络安全监督防线
简历网络技术的专业技能怎么写
软件开发工作量安排
网络安全法案例农
江岸区软件开发
自助缴费机软件开发
掌上生活打开流量提示服务器异常
电子计算机与网络技术就业
镇网络安全工作方案
甘肃服务器硬盘质量好
数据库0或1用什么类型
网络服务器安全软件
苏州戴尔服务器基础了解
网络安全大賽
魔域网络技术