C语言和C++中类的组合概念以及实例用法
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要介绍"C语言和C++中类的组合概念以及实例用法",在日常操作中,相信很多人在C语言和C++中类的组合概念以及实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2024年11月14日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安全错误
数据库的锁怎样保障安全
数据库连接池怎么选
东莞联想服务器
db2数据库表重整
关于网络安全400字
网络安全监控中心职责
镇加强网络安全管理
局域网域名服务器搭建
数据库架构有几种模式
网络技术专业作文450字
全国房贷的数据库
怎么查最强蜗牛是哪个服务器
古交市公安局网络安全培训
成都电信服务器租用
做软件开发用什么系统好
第一年在携程做软件开发属于几级
武汉枫欧网络技术开发公司
还原显示数据库正在使用
荣昌区一站式网络技术包括什么
ios app 服务器
unturned服务器指令
海康PAG服务器
uwp 打包数据库
云服务器日租
流量服务器搭建
外包软件开发商
access数据库能否
sql数据库mdf压缩
ios app 服务器
ceiba2服务器 wcms
网络安全监管督查督办通知单