2013-01-24 2 views
2

아래 다이어그램에서 클래스 "복사"및 클래스 "예약"은 집계를 표시합니다 (에는 복사본 있음). 다른 모든 클래스는 "Copy"클래스의 하위 클래스입니다. 이제 Member 클래스가 있다고 가정 해보십시오.이 클래스는 "복사"클래스의 "대출"및 "대출"하위 클래스에 액세스해야합니다. 'Member'클래스가 알아야 할 유일한 것은 "accessionNumber"입니다.집계 클래스 내 연결 구현

코드의 관점에서 생각하면, "Book"클래스는 "Copy"의 배열을 포함합니다.

enter image description here

어떻게 특정 도서의 accessionNumber을 알 수 있습니까?

copies 배열에 제 3 권의 "accessionNumber"가 필요합니다. 그러나 배열은 Book 클래스에 있으며 Copy 클래스의 Book 클래스에는 연결되어 있지 않습니다.

우리가 연결을 작성하는 경우, 그와 같은 것이 더 의미, 또는, (유명한 집계 예 "학생 주제를 가지고 촬영)"제목이 학생이 "같은"복사는 책이있다? "

+0

@LuchianGrigore : 이것은 어느 것에서 구현 될 수 있기 때문에. 누군가가 자바를 사용할 수 있다면 (제 모국어입니다), C++로 다시 변환 할 수 있습니다. 이는 처리하는 방법이기 때문에 가능합니다. –

+0

언제나 SQL 방식으로 이동하여 Book과 Copy를 함께 연결하는 클래스를 만들 수 있습니다. 그러나 C++ 프로그램에서는 그다지 유용하지 않습니다. –

+0

@BartekBanachewicz : 안녕하세요, 데이터베이스가 필요하다는 뜻입니까? 나는 허용되지 않습니다 –

답변

1

우리가 연결을 만들 경우에, 그것은 그렇지 않은 것,

없음 "복사는 책이있다."간단한 dependency 관계를 (C에서 예를 들어, 참조 또는 비 소유 포인터 ++) 같은 것 더 강한 협회에서 얻을 수있는 "가지고있다"또는 "소유하고있다"관계가 아닙니다. 의 응집 또는 조성. 그건 네가 여기서 원하는 것처럼 들린다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. "Copy"클래스에서 "Book * bookPtr"(책 포인터) 같은 것을 의미합니까? –

+0

@Yohan : 예, 관련 '책'에 대한 포인터 또는 참조를'복사 '하십시오. –

+0

좋아요. 고마워요. :) 정말로 고맙습니다. :) –