OOP
실 세계의 객체를 어떻게 모델링 하는가?
작업단위 x 물리적 객체들의 모델들로 쪼갠다.
물리적 객체 : class, component, property, behavior
클래스 : 계층, 분류, 유형
IS-A 관계
HAS-A 관계
다형성
Polymorphism : 표준적인 프로퍼티/행동 집합을 정의해두고, 그것을 따르는 객체들이라면 그 중 어느 객체를 이용하든 정상적으로 이용할 수 있다는 개념.
NOT-A관계
실 세계에서는 매우 비슷하더라도 코드 상에서는 공통기능이 없는 경우
다중상속이 꺼려지는 이유 :
1: 다중 상속 관계는 그림을 나타내기에 복잡함
2: 간명할 수도 있는 클래스 구조를 망가뜨릴 수 ㅣㅇㅆ다.
3: 구현이 까다롭다.
첨가 클래스 Mix-in 클래스
c++에서는 첨가 클래스가 문법적으로 다중상속과 같다. 하지만 이 클래스가 이것외에 할수 있는 또 다른 일은 무엇인가? 에 대한 질문에 ~도 할수있다 는 형태로 답한다.
첨가 클래스는 IS-A 관계를 완전히 구현하지 않고도, 일정 기능을 추가하는 방법이다.
공유관계로도 생각할 수 있다.
~able
출처 : 전문가를 위한 C++
'C++ STL, 알고리즘' 카테고리의 다른 글
const (0) | 2024.10.02 |
---|---|
C++ 생성자 (0) | 2024.10.02 |
C++ 알쓸신잡 (0) | 2024.10.02 |
c++ static (0) | 2024.10.02 |
c++ 복습을 위한 링크 (0) | 2024.08.30 |