달력

10

« 2018/10 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  

'has-a 관계'에 해당되는 글 1

  1. 2010.03.27 IS-A, HAS-A 관계 (1)
2010.03.27 14:54

IS-A, HAS-A 관계 프로그래밍/C++2010.03.27 14:54







IS-A, HAS(HAVE)-A 관계가

뭔가 문법적이고 코드적인 부분은 아니다.

약간은 개념적이고 추상적인 내용이지만,

딱히 어려운 내용은 아니니 특별히 소스코드 없이 개념적으로 한번 훑어 보자.


class 사람
class 학생 : public 사람

다음과 같은 형태가 IS-A 관계이다.

"모든 학생은 사람이다."

라는 말을 하였을 때 어색하지 않은 관계.

하지만

"모든 사람은 학생이다"

라고 했을 때에는 올바르지 않다.

이렇게 하위 클래스가 상위 클래스를 "포함" 하고 있는 관계를 IS-A 관계라 한다.

그렇다면 HAS-A 관계는 무엇인가.

"사탕을 소유한 어린 아이"
"무기를 소지한 강도"
"총을 가지고 있는 경찰"

정도가 HAS-A 관계라고 볼 수 있다.

사탕은 강도도, 어린 아이도, 경찰도 모두 소요 할 수 있고.
무기 또한 어린 아이도(?) 강도도, 경찰도 소유 할수 있고.
물론 총도, 어린...아...이도.. 강도도 경찰도 가질 수 있다.(물론 약간의 거부감이 들지도 모르지만 불가능 한게 아니다.)

class 총;
class 경찰
{
       총 _총;
}

과 같이 클래스 내에 다른 클래스를 "포함" 함으로써 기능적인 것을 사용하고자 했을 때,
HAS-A 관계를 이용한다.

음, 간단하게 나마 IS-A, HAS-A 관계를 코드로 살펴 보자.


IS-A관계

HAS-A 관계

'프로그래밍 > C++' 카테고리의 다른 글

객체 레퍼런스  (0) 2010.04.03
객체 포인터  (2) 2010.03.29
IS-A, HAS-A 관계  (1) 2010.03.27
상속의 형태  (0) 2010.03.26
상속의 객체 생성, 소멸 과정  (0) 2010.03.26
상속의 개념  (0) 2010.03.24
Posted by 안식의후크