2009-08-17 77 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類設爲公共超類/接口。