본문 바로가기
IT/c++

C++ 함수 오버로딩: 다양한 매개변수로 유연한 함수 정의하기

by 뉴코딩맨 2023. 7. 25.
C++은 하나의 함수 이름으로 여러 함수를 동일한 스코프에서 정의할 수 있게 해주는 기능을 제공합니다. 이러한 함수들은 오버로딩된 함수라고 불리며, 매개변수의 유형과 개수에 따라 함수에 다른 의미를 부여할 수 있게 합니다. 이번 글에서는 C++의 함수 오버로딩에 대해 자세히 알아보고, 사용법과 장점을 살펴보겠습니다.
 
 

1. 함수 오버로딩이란?

함수 오버로딩은 C++에서 동일한 함수 이름으로 여러 함수를 정의하는 것을 의미합니다. 단, 이러한 함수들은 매개변수의 유형과 개수가 서로 다르게 정의되어야 합니다. 이를 통해 프로그래머는 다양한 상황에 맞는 적합한 함수를 호출할 수 있습니다.
 

2. 함수 오버로딩의 활용

함수 오버로딩은 코드의 가독성과 재사용성을 높여주며, 다양한 데이터 유형을 처리하는 데 유용합니다. 예를 들어, 다음과 같은 상황에서 함수 오버로딩을 사용할 수 있습니다.
 
  • 두 수를 더하는 add 함수를 정수, 실수, 복소수 등 다양한 데이터 유형으로 처리
  • 문자열을 합치는 concat 함수를 여러 문자열 유형으로 처리

3. 함수 오버로딩과 함수 오버라이딩의 차이

함수 오버로딩과 함수 오버라이딩은 모두 다형성의 개념을 나타냅니다. 하지만 함수 오버로딩은 같은 클래스 내에서 동일한 함수 이름을 가진 함수를 다양하게 정의하는 것이며, 함수 오버라이딩은 기존에 정의된 함수를 자식 클래스에서 재정의하는 것을 의미합니다.

 

 

4. 함수 오버로딩 예제

 

 
#include <iostream>

int add(int a, int b) {
    return a + b;
}

double add(double a, double b) {
    return a + b;
}

int main() {
    int result1 = add(2, 3);
    double result2 = add(2.5, 3.7);
    
    std::cout << "result1: " << result1 << std::endl;
    std::cout << "result2: " << result2 << std::endl;
    
    return 0;
}
 
위의 예제에서 add 함수는 정수와 실수 두 가지 버전으로 오버로딩되어 있습니다. 두 수를 더하는 기능은 정수와 실수에 모두 적용되며, 각각의 데이터 유형에 맞게 호출됩니다.
 

5. 결론

C++의 함수 오버로딩은 하나의 함수 이름으로 다양한 유형의 함수를 정의하여 유연한 프로그래밍을 가능하게 합니다. 매개변수의 유형과 개수에 따라 적절한 함수가 호출되므로, 코드의 가독성과 재사용성이 높아집니다. 다양한 상황에서 적절하게 활용하여 효과적인 프로그래밍을 지향해야 합니다.
 

댓글