프로그래밍 언어/C & C++ 정리

그래서 다형성이 뭐라고요?

뽀또치즈맛 2024. 11. 26. 08:07

 

간단히 말하자면

여러 가지 형태를 가지는 것이다.

 

여러 가지 형태를 가지는 것이니,

오버로딩과 오버라이딩을 써서 여러 형태를 가지는 기능들을

한데 묶어 분류해 놓은 것이다.

 

다형성은 굉장히 중요하다.

그 이유는, 실제 유용성이 굉장히 많다.

예를 들어 게임이라고 하면,

몬스터의 종류가 많을 것이다.

이런 몬스터의 부모 클래스가 되는 BaseMonster 클래스가 있을 것이고,

이 클래스에 파생되는 애들도 있을 것이다.

그럼 몬스터 종류가 약 20개쯤 된다고 가정해보자.

 

이 다른 타입들을 배열에 저장하기에는 좀 부담스럽다.

귀찮고 번거로운 일이기 때문에.

 

BaseMonster 클래스 내부에

virtual 반환형 Move()  함수를 제작한다.

이후 monster* 배열을 제작한 후, 

이 배열 내부에 있는 moster의 move 함수를 호출한다.

그렇게 되면 실체(업캐스팅 전 실제 포인터 변수 내부의 자료형)의 move를 호출해준다.

 

이처럼 다형성은 유용하다.

OOP는 사물을 보는 눈이라하면,

다형성은 이를 한 단계 추상화한 개념이라고 보면 된다.

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

쓰레드 기본 사용법  (0) 2024.11.28
decltype과 템플릿  (0) 2024.11.27
인라인 함수  (0) 2024.11.25
Casting - 왜 C스타일 캐스팅은 4개로 나뉘었을까?  (0) 2024.11.24
인터페이스  (0) 2024.11.22