2009-08-17 6 views
-1

클래스 관계를 UML 다이어그램

add.h를 다음과 같이 내 클래스 구조를 가지고는 방법 INT 추가 기능 (INT, int)를 가지고 있으며, add.cpp이 add.h을 포함하고 방법은

위에 추가 정의 클래스 추가 기능을 가지고

sub.h는 메소드 int sub (int, int) 을 갖는 sub 클래스를 가지며 sub.cpp는 sub.h를 포함하고 메소드 서브를 정의합니다.

이제 main.h는 main 클래스를 가지며 add.h와 sub를 포함합니다 .h; 주요 클래스는 결과를 인쇄하는 몇 가지 인쇄 방법이있다; MAIN.CPP이 방법은 추가 사용 및 서브

내 질문은 계산을 수행하는 클래스의 주요 & 클래스 사이의 관계는 무엇인가 또한 클래스의 주요 & 클래스의 서브를 추가합니다. Main.h는 단순히 add.h와 sub.h를 포함하므로이 관계에 대한 이름이 있습니다. AFAIK 상속이 아니며 구성 또는 집계가 아닙니다.

답변

5

당신은 C++ 컴파일과 클래스 관계의 개념을 혼합하고 있습니다. 두 가지는 실제로는 서로 관련이 없습니다. C++ 소스 파일 간의 관계를 모델링하려는 경우 UML 구성 요소 다이어그램을 사용해야하지만이 작업은 귀찮은 사람이 거의 없습니다.

+0

그런데 왜 대부분의 질문에 대답합니까? 설명에서 클래스에는 특별한 관계가 없지만 코드를 확인해야합니다. –

1

3 개의 독립적 인 클래스가 있습니다. main은 구현시 add 및 sub 만 사용합니다. 나는 그들 사이의 어떤 관계도 보지 못했다.

1

Neil이 말한 것처럼 소스 파일 (및 헤더 파일)은 여기 클래스와 일치합니다. 즉, a.cpp와 a.h 사이의 관계를 모델링하지 않는다는 것입니다. 클래스 a의 선언과 정의이며, 분리 된 사실은 디자인 문제가 아니며 단순히 컴파일 아티팩트 일뿐입니다.

일반적으로 .cpp 파일에 자체 클래스가 아닌 .h 파일이 포함되어있는 경우 .cpp 은 .h에 들어있는 파일을 사용한다고 말할 수 있습니다. 클래스 a의 선언에 클래스 b의 선언이 필요한 경우 아마도 a는 클래스 b를 집계하는 것입니다.

이 경우, 메인과 '연산'사이의 (평이한, 단방향) 관계는 '사용법'으로 표시됩니다.

다음으로는 subadd 클래스에 공통 수퍼 클래스/인터페이스를 제공하는 것이 일반적입니다.

관련 문제