`
pleasetojava
  • 浏览: 703087 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

C++中类之间的关系

阅读更多

C++中类之间的关系

摘要:

本文讲解面向对象C++程序设计中类之间的关系。并用UML类图描述这些关系。

关键词:

面向对象 类 对象 C++ UML

适用对象

对C++有一定基础的初级同学

面向对象编程的核心:类

面向对象的思想下编程过程可以减化为:

1. 识别和发现备选对象

2. 给对象分配职责

3. 确定对象之间的关系

下面列出一些术语,如果同学位对这些术语还不太了解,那么请要求我给大家作补充说明。

编号

术语

原文

1

Class

2

对象

Object

3

实例

Instance

4

属性

attribute

5

操作(成员函数)

operation

6

关系

relationship

7

UML

Unified Modeling Language

8

类图

Class diagram

类之间的关系

关系1: 没有关系

两个对象之间如果没有关系,那么它们是孤立的。

clip_image002

关系2: 关联关系 (Association)

clip_image004

A和B之间是关联关系;

C与自己关联

关系3:有方向的关联关系 (DirectedAssociation)

关联还可以有方向性的。如下图

clip_image006

这种关系是关联关系的一种。

关系4: 聚合关系(Aggregate)

聚合关系也是关联关系的一种,这种关系能确定两个类之间的部分或整体关系。

clip_image008

关系5: 组合关系(composite)

clip_image010

组合关系也是一种部分和整体之间的关系。您能区分组合与聚合的区别吗?这个问题当作业来讨论吧。

关系6:泛化关系(Generalization)

clip_image012

泛化关系就是常见的继承关系。Student.csdn.net社区中的用户可以模型化为上图。

关系7:依赖关系(Dependency)

clip_image014

比如用户有一个登录的操作,用户密码在数据库在以MD5的形式存放,登录操作要用MD5类提供的decode()方法进行明码到密码的转换。

关系8:实现(Realization)

clip_image016

关系9:参数化关系(Parameter)

clip_image018

这种关系UML中还没有定义,我暂时为它命名这Parameter关系吧。

作业:

1. 说说聚合与组合关系的差别。

2. 尝试用C++代码代码描述上述关系。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics