STL - 2.1 (함수 템플릿)

Youngmin Choi·2021년 6월 10일
0

STL

목록 보기
2/34
post-thumbnail

두 값을 비교하는 함수를 만든다.

함수 오버로딩에 의해서 경험치를 비교할 때는 int 타입의 Max함수가 아닌
float타입을 비교하는 Max가 호출되어 버그가 사라지게 되었다.

이제 HP, Exp 비교는 끝나서 다음 기획서에 있는 '돈'을 구현하려고 한다.
그런데 돈을 저장하는 변수의 타입을 int64 이다.
int64는 비주얼 C++에서만 사용할 수 있는 64비트 정수 타입이다.
그러므로 '돈'은 앞에서 만든 int타입 함수나 float타입 함수를 사용할 수 없다!

지금까지만 하더라도 타입이 다른 똑같은(오버로딩) 함수를 3개나 만들었다..
이외에도 Max함수를 몇 개 더 만들어야 할지는 기획에 따라 달라질 것이다.
위와 같이 하게되면 함수 오버로딩 문제는 해결하지만, 코드가 커지고 유지보수가 좋치 않게된다.

★객체지향 프로그래밍의 가장 큰 장점 중 하나가 객체들 간의 유지보수가 잘 되어야 한다!★

Q. 그렇다면 어떻게 해야 위의 문제를 해결하면서 객체지향의 장점을 살릴 수 있을까?

profile
Always, Continually, In all circumstance

0개의 댓글