- 순서
- is-a 관계
- has-a 관계
- is-a 관계와 has-a 관계의 차이점
- is-a 관계
- is-a는 'A는 B이다'일 때 '~이다'와 같다.
- 추상화(형식이나 클래스와 같은)들 사이의 포함 관계를 의미함. 클래스 A가 다른 클래스B의 파생클래스임을 뜻함.
- 타입 A는 타입 B의 명세를 암시하여 타입B의 서브타입이라고 할 수 있음
- is-a관계를 통해 생성된 클래스 및 객체는 상속 관계에서 둘은 밀접하게 결합됨. => 부모 또는 기저 클래스의 명세에 변경이 발생하면 코드가 손상도리 위험이 있음.
- has-a 관계
- has-a는 "A가 B를 가지고 있다"라는 관계이다.
- 구성 관계를 의미하며 한 오브젝트가 다른 오브젝트에 "속한다"를 말함.
- 한 클래스가 다른 클래스의 객체를 멤버 변수로 포함하는 관계
- has-a 방식으로 생성된 클래스 및 객체는 느슨하게 결합됨 =>상속에 비해서 명세에 변경이 발생하더라도 구성 요소를 쉽게 변경할 수 있다는 의미. (더 많은 유연성을 제공)
- is-a 관계와 has-a 관계의 차이점
- is-a관계는 상속이고 has-a관계는 구성 관계이다.
- is-a관계는 다른 클래스에 상속하고, has-a관계는 다른 클래스 객체를 멤버를 포함하도록 구현한다.
'C++' 카테고리의 다른 글
| [C++] 연산자 오버로딩 (0) | 2025.07.17 |
|---|---|
| [C++] 시프트 연산자 (0) | 2025.07.15 |
| [C++] Iterator 반복자 (0) | 2025.07.10 |
| [C++]Alogorithm헤더파일 (1) | 2025.07.08 |
| [C++] <sstream>헤더파일 (0) | 2025.07.04 |