2009-08-17 80 views
-1

我有类结构如下类关系的UML图

add.h具有带有方法INT加载(INT,INT)和add.cpp包括add.h并限定方法中添加上述

类添加

sub.h有子类,它具有方法int sub(int,int) 和sub.cpp包含sub.h并定义方法sub

现在,main.h具有class main,它包含add.h和sub 。H;主类也有一些打印方法来打印效果; main.cpp中使用的方法添加和子做计算

我的问题是,什么是类主要&类之间的关系也添加类主要&类子。 Main.h只包含add.h和sub.h,所以这个关系是否有任何名称。 AFAIK它不是继承,它不是组合或聚合。

回答

5

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

+0

那么为什么要占用你的大部分问题呢?从描述中,这些类没有特别的关系,但我需要看到代码是确定的。 – 2009-08-17 17:17:25

1

你有3个独立的课程。 main将只在其实现中使用add和sub。我没有看到他们之间的任何关系。

1

正如尼尔说:源文件(和头文件),发生在这里的类一致。这意味着你不能模拟a.cpp和a.h之间的关系:它是a类的声明和定义,而且它们是分开的事实不是设计问题,只是一个编译工件。

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

在这种情况下,我会说主和'操作'之间的(简单的,单向的)关系被标记为'用法'。

除此之外,通常将subadd类设为公共超类/接口。