2013-05-28 2 views
3

UML에서 연산자 오버로딩을 나타내는 특별한 방법이 있습니까? 예 : 나는 다음과 같습니다UML 다이어그램의 연산자 오버로드

virtual MyClass& operator= (const MyClass& right) = 0; 

나는 그것이 운영자 이름이 =입니다 UML에서 일반 함수로 표현 될 수 있다고 가정 할 수, 입력 매개 변수는 (const MyClass& right)이며, 반환 유형은 MyClass&입니까?.

내 가정이 맞습니까?

+2

비록 UML을 사용하여 무엇이든 표현할 수 있다고하더라도, 소프트웨어 엔지니어링 UML 모델을위한 IMO가 소프트웨어 설계를 나타내는 데 사용되어야합니다. UML 모델에서 정확한 코드 구현을 나타 내기 위해 무의미한 (그리고 큰 오용) 점이 있습니다. 연산자 오버로딩은 UML 디자인에 표시하면 안되는 구현 세부 사항입니다. – greydet

+0

나는 너와 덜 동의하지 않을 것이다. 그러나 우리 기업에서는 복잡하고 집중적 인 바이너리 데이터 동기화를 수행하기 위해 오버로드 된 연산자를 사용하고 있으며 복잡한 클래스 구조와 재정의 된 연산자를 표시하는 것이 중요합니다. 이것이 유일한 이유입니다. – Nostradamus

답변

2

좋아요. 저는 UML 대학 노트로 돌아가서 해결책을 찾았습니다. :) (저는 수년 후에 대학 노트가 여전히 가치 있고 항상 좋은 것을 확인했습니다. .

virtual은 스테레오 타입으로 간주됩니다. 반환 형식이 MyClass& 될 것 작업/함수 이름은 인수 이름을 다시 정리해 보면 const MyClass&

의 유형 right 될 것 operator= 될 것으로해야 전체 UML 표기법은 다음과 같습니다

<<virtual>> operator=(right:const MyClass&):MyClass& 
+0

std :: map sessions_map_; 클래스 다이어그램에서 이것을 어떻게 매핑합니까? – OOkhan