类关系UML图

时间:2009-08-17 17:04:15

标签: c++ uml

我的课程结构如下

add.h有类add,有方法int add(int,int),add.cpp包含add.h,定义方法添加上面

sub.h有class sub,它有方法int sub(int,int) 和sub.cpp包括sub.h并定义方法sub

现在,main.h有class main,它包含add.h和sub.h; main类还有一些打印方法来打印结果; main.cpp使用方法add和sub来进行计算

我的问题是,课程主要与课程之间的关系是什么? class add还有class main&阶级分。 Main.h只包含add.h和sub.h,因此这个关系有任何名称。 AFAIK它不是继承,它不是组合或聚合。

3 个答案:

答案 0 :(得分:5)

你正在混淆C ++编译和类关系的概念 - 这两件事实际上彼此无关。如果你想模拟C ++源文件之间的关系,你应该使用UML组件图,但很少有人为此烦恼。

答案 1 :(得分:1)

您有3个独立的课程。 main只会在其实现中使用add和sub。我认为他们之间没有任何关系。

答案 2 :(得分:1)

正如Neil所说:源文件(和头文件)恰好与这里的类重合。这意味着你不建模a.cpp和a.h之间的关系:它是a类的声明和定义,它们被分离的事实不是设计问题,只是一个编译工件。

通常,当.cpp文件包含不属于它自己的类的.h文件时,可以说.cpp 使用 .h中的内容。当a类的声明需要b类声明时,可能是聚合类b。

在这种情况下,我会说main和'operations'之间的(普通,单向)关系被标记为'usage'。

接下来,给subadd类提供一个共同的超类/接口是很常见的。