c++类与类的聚合关系

  • 聚合(Aggregation)关系
    • 具体表现
    • 关联与聚合的区别
  • 代码表现

聚合(Aggregation)关系

当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。

具体表现

与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。

关联与聚合的区别

(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。

c++类与类的聚合(Aggregation)关系相关推荐

  1. UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。

    结构元素 结构元素包括,类,对象,接口,用例,参与者. 类图 类图图示      类图是UML中最基本的元素了吧?根据OO的思想"天下一切皆对象",而类是对象的抽象.       ...

  2. java uml 类图 加号_UML建模基础 UML类图的组成元素和关系解析

    本文和大家重点讨论一下在UML建模中UML类图的java代码表现,主要包括UML类图元素和关系两大部分内容,相信通过本文的介绍你对UML类图的概念一定会与明确的认识. 在UML建模中UML类图的jav ...

  3. 区分 UML 类图中的几种关系

    区分 UML 类图中的几种关系   2010-12-23 作者:fnw 来源:网络      区分 UML 类图中的几种关系  UML 类图中的 "关联关系(association) &qu ...

  4. 类与类之间的交互关系

    类与类之间都哪些交互关系呢? UML 统一建模语言中定义了六种类之间的关系.它们分别是:泛化.实现.关联.聚合.组合.依赖.关系比较多,而且有些还比较相近,比如聚合和组合,接下来我就逐一讲解一下. 泛 ...

  5. c++类与类之间关系

    类与类之间关系 类与类之间关系 UML表示和代码表示 类与类之间关系 类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下. 类与类之间存在以下关 ...

  6. 类与类之间关系,用C#和JavaScript体现

    前言 在面向对象中,类之间的关系有六种,分别是: 关联关系(Association) 泛化关系(Generalization) 依赖(Dependency) 聚合(Aggregation) 组合(Co ...

  7. 类与类关系的UML图与代码表现

    一 : 二 : 三 : 四 : 五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系: (1)泛化(Generalization) :狗与动物 (空箭头) (2)关联(Associa ...

  8. UML 类图、类与类之间关系

    目录 类图 类的表示法 画类图 接口的表示法 类与类之间关系 泛化(Generalization)关系 依赖(Dependency) 关联(Association) 聚合(Aggregation) 组 ...

  9. Rose的 一些简单说明--类与类之间的关系、用例与用例之间的关系

    1.uml中图的放置位置 注释: 用例视图 用例视图中包括了系统中的所有参与者.用例和用例图,必要时还可以在用例视图中添加顺序图.活动图等 逻辑视图 逻辑系统关注系统是如何实现用例中所描述的功能的,主 ...

最新文章

  1. c swap方法在哪个库里面_在编程竞赛中高效地编写C/C ++代码
  2. 一起谈.NET技术,自动更新组件分享
  3. 如果类是个泛型类的话dllImport 代码不能编译
  4. kubernetes学习笔记之七: Ingress-nginx 部署使用
  5. (Mirage系列之五)Mirage经典案例之桌面驱动和基础层管理
  6. 抖音提示需要转换为mp4_如何将MP4文件转换为MP3格式?万兴优转帮你轻松完成转换...
  7. java 转jsp_【转】JSP三种页面跳转方式
  8. Android OpenSL ES 对象结构
  9. shell_exec() php 执行shell脚本
  10. 如何将stdin、stdout、stderr重定向到/dev/null
  11. IntelliJ IDEA使用技巧(四)——设置默认Maven的方法
  12. MTK 三星处理器一览表
  13. isis协议_[IS-IS] IS-IS路由协议的基本知识及配置
  14. 产品经理面试题汇总(1)
  15. balenaEtcher for mac(U盘启动盘制作工具)
  16. CVE-2017-0199——首个Microsoft Office RTF漏洞
  17. 与门,或门,与非门,异或门的python实现
  18. 乐山持点科技:抖音极速版电商入驻指南
  19. 异常问题-NXP的Flash锁死后无法烧录
  20. C#Winform 实现控件自适应父容器大小

热门文章

  1. java引用传递关键字_Java值传递和引用传递
  2. python tkinter输入框_python TKinter获取文本框内容的方法
  3. python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别
  4. boost::type_erasure::tuple相关的测试程序
  5. boost::statechart模块实现类型信息测试
  6. boost::enable_shared_from_this相关的测试程序
  7. boost::intrusive::function_hook用法的测试程序
  8. boost::hana::arg用法的测试程序
  9. GDCM:读取流图像的测试程序
  10. boost::core模块cmath相关测试程序