함수 오버로딩
Coddy C++ 여정의 기초 섹션에 포함된 레슨 — 74개 중 54번째.
함수 오버로딩은 두 개 이상의 함수가 동일한 이름을 가질 수 있지만 매개변수는 서로 다른 C++의 기능입니다. 오버로드된 함수를 호출할 때, C++ 컴파일러는 호출 시 사용된 인자 타입과 정의에 지정된 매개변수 타입을 비교하여 사용할 가장 적절한 정의를 결정합니다. 일치하는 함수를 찾지 못하면 컴파일러는 에러를 발생시킵니다.
함수 오버로딩의 예제입니다:
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
int sum1 = add(5, 3); // add의 첫 번째 버전을 호출합니다
double sum2 = add(2.5, 3.7); // add의 두 번째 버전을 호출합니다
return 0;
}이 예제에서는 이름이 add인 두 개의 함수가 있습니다. 하나는 두 개의 int 매개변수를 받고, 다른 하나는 두 개의 double 매개변수를 받습니다. add에 전달하는 인수의 타입에 따라, 적절한 버전의 함수가 호출됩니다.
반환 형식(return type)만으로는 함수를 오버로드하기에 충분하지 않다는 점에 유의하는 것이 중요합니다. 함수는 매개변수 목록이 서로 달라야 합니다.
치트 시트
함수 오버로딩은 이름은 같지만 매개변수가 다른 여러 함수를 허용합니다. 컴파일러는 인수의 타입을 기반으로 적절한 함수를 선택합니다:
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
int sum1 = add(5, 3); // int 버전을 호출합니다
double sum2 = add(2.5, 3.7); // double 버전을 호출합니다
return 0;
}함수는 매개변수 목록이 달라야 합니다. 반환 타입만으로는 오버로딩을 하기에 충분하지 않습니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.