본문 바로가기
C++ STL, 알고리즘

OOP

by wanna_dev 2024. 10. 2.

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