Skip to content

문제 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이지만 인자의 타입/개수가 달라 서로 다른 함수로 공존하며, 호출 형태에 맞는 것이 선택됩니다.

👉 실습(C++)에서 확인하기

PDF