문제 12 · 함수 오버로딩
문제 12 [4점]
아래 문제를 읽고, 각 문제의 제시어에 대한 설명을 예시와 함께 서술하시오.
함수 오버로딩function overloading에 대해 예시와 함께 서술하시오.
풀이 및 해설
함수 오버로딩이란 같은 이름의 함수를 매개변수의 개수나 타입을 다르게 하여 여러 개 정의하는 것입니다. 컴파일러는 호출 시 전달된 인자의 개수·타입을 보고 어느 함수를 실행할지 자동으로 결정합니다(정적 바인딩).
- 함수 이름은 같지만 매개변수의 목록(시그니처)이 달라야 합니다.
- 반환형만 다른 것으로는 오버로딩이 성립하지 않습니다.
- 장점: 기능이 비슷한 함수에 굳이 다른 이름(
addInt,addDouble…)을 붙이지 않아도 되어 코드가 직관적이 됩니다.
예시
cpp
int add(int a, int b) { return a + b; } // 정수 2개
double add(double a, double b) { return a + b; } // 실수 2개
int add(int a, int b, int c) { return a + b + c; } // 정수 3개
add(1, 2); // 첫 번째 호출
add(1.5, 2.5); // 두 번째 호출
add(1, 2, 3); // 세 번째 호출세 함수는 이름이 모두 add이지만 인자의 타입/개수가 달라 서로 다른 함수로 공존하며, 호출 형태에 맞는 것이 선택됩니다.