오버로딩(overloading)이란?
같은 이름의 함수(function)를 여러 개 만들되, 매개변수(variable)(parameter)의 타입(type)이나 개수가 다르면 구분할 수 있습니다. 이를 함수(function) 오버로딩(Overloading)이라고 합니다.
// 매개변수가 2개인 경우
int MinusNumber(int a, int b)
{
return a - b;
}
// 매개변수가 1개인 경우 (오버로딩)
int MinusNumber(int a)
{
return a;
}
// 매개변수 타입이 다른 경우 (오버로딩)
float MinusNumber(float a, float b)
{
return a - b;
}
사용 예시
void Start()
{
Debug.Log(MinusNumber(97, 3)); // 94 (int, int)
Debug.Log(MinusNumber(97)); // 97 (int)
Debug.Log(MinusNumber(97.0f, 3.0f)); // 94.0 (float, float)
}
오버로딩(overloading)의 장점
- 유연성: 같은 기능이지만 다른 타입(type)이나 개수의 값을 받을 수 있음
- 편의성: 함수(function) 이름을 하나로 통일할 수 있어 기억하기 쉬움
- 가독성: 코드가 더 깔끔하고 이해하기 쉬움
오버로딩(overloading) 규칙
- 함수(function) 이름은 같아야 함
- 매개변수(variable)(parameter)의 타입(type)이나 개수가 달라야 함
- 반환(return) 타입(type)만 다르면 오버로딩(overloading) 불가 (에러(error) 발생)
// ✅ 가능: 매개변수 개수가 다름
int Add(int a, int b) { return a + b; }
int Add(int a, int b, int c) { return a + b + c; }
// ✅ 가능: 매개변수 타입이 다름
int Add(int a, int b) { return a + b; }
float Add(float a, float b) { return a + b; }
// ❌ 불가능: 반환 타입만 다름 (에러!)
int Add(int a, int b) { return a + b; }
float Add(int a, int b) { return a + b; } // 컴파일 에러!