C++은 함수 호출 시 ‘함수의 이름’과 ‘전달되는 인자의 정보’를 동시에 참조하여 호출할 함수를 결정한다. 따라서 매개변수의 선언이 다르다면 동일한 이름의 함수도 정의 가능하다. 그리고 이러한 형태의 함수 정의를 가리켜 ‘함수 오버로딩(Function Overloading)’이라 한다.
#include <iostream>
using namespace std;
int Func(int num) {
return num;
}
int Func(int num1, int num2) {
return num1 + num2;
}
int main(void) {
cout << Func(10) << '\n'; // 출력값: 10
cout << Func(20, 30) << '\n'; // 출력값: 50
cout << Func(40, 50, 60) << '\n'; // 에러 발생
return 0;
}
int Func(int num) { ... }
int Func(char c) { ... }
int Func(int num) { ... }
int Func(int num1, int num2) { ... }
int Func(int num) { ... }
void Func(int num) { ... }