[c++] 함수 오버로딩과 메소드 오버로딩의 차이
함수 오버로딩 (Function Overloading)
함수 오버로딩은 같은 이름의 함수를 여러 개 정의하는 것을 말합니다. 다만, 매개변수의 개수나 타입이 서로 다른 경우에 사용됩니다. 컴파일러는 함수 호출 시 전달된 매개변수의 형태에 따라 어떤 함수를 호출할지 구분합니다. 아래는 C++에서 함수 오버로딩을 사용한 간단한 예시입니다.
#include <iostream>
using namespace std;
void print(int num) {
cout << "정수: " << num << endl;
}
void print(double num) {
cout << "실수: " << num << endl;
}
int main() {
print(10);
print(3.14);
return 0;
}
위 예제에서는 print
함수를 정수와 실수 두 가지 타입의 매개변수를 갖는 두 가지 버전으로 오버로딩하였습니다.
메소드 오버로딩 (Method Overloading)
메소드 오버로딩은 클래스 안에서 동일한 이름의 메소드를 여러 개 정의하는 것입니다. 메소드 오버로딩 또한 매개변수의 타입이나 개수가 다른 경우에 사용됩니다. 아래는 Java에서의 메소드 오버로딩 예시입니다.
public class Calculator {
public int add(int num1, int num2) {
return num1 + num2;
}
public double add(double num1, double num2) {
return num1 + num2;
}
public int add(int num1, int num2, int num3) {
return num1 + num2 + num3;
}
}
위의 예제에서는 add
메소드를 각각 정수 두 개, 실수 두 개, 정수 세 개를 매개변수로 받는 세 가지 버전으로 오버로딩하였습니다.
결론
함수 오버로딩과 메소드 오버로딩은 다형성 개념을 통해 코드의 가독성을 높이고, 유사한 동작을 하는 기능에 동일한 이름을 부여하여 일관성을 유지하는 데 사용됩니다. 언어에 따라 구현 방식이나 용어가 다르지만, 핵심적인 개념은 유사하며, 코드 작성과 유지보수에 유용한 특징을 가지고 있습니다.