[c++] 함수 오버로딩과 리팩토링

함수 오버로딩(function overloading)은 C++에서 유용한 기능 중 하나입니다. 함수 오버로딩을 사용하면 같은 이름의 함수를 여러 개 정의할 수 있습니다. 이때 함수의 매개변수의 개수나 타입이 서로 달라야 합니다.

함수 오버로딩의 장점

함수 오버로딩을 사용하면 유사한 동작을 하는 함수들을 한눈에 파악할 수 있습니다. 또한, 매개변수의 타입을 일일이 바꿔가면서 다양한 형태로 함수를 호출할 필요가 없어지므로 사용자 편의성을 높일 수 있습니다.

#include <iostream>

void print(int num) {
    std::cout << "정수: " << num << std::endl;
}

void print(double num) {
    std::cout << "실수: " << num << std::endl;
}

int main() {
    print(5);
    print(3.14);
    return 0;
}

위 예제에서 print 함수는 정수와 실수를 각각 출력하는 것을 확인할 수 있습니다.

함수 리팩토링과 함수 오버로딩

함수 오버로딩은 기존 함수의 이름을 재활용함으로써 코드 중복을 최소화할 수 있기 때문에 함수 리팩토링에 유용하게 사용될 수 있습니다. 예를 들어, 비슷한 기능을 하는 calculateArea 함수들이 여러 개 있을 때, 함수 오버로딩을 통해 하나의 함수로 통합할 수 있습니다.

#include <iostream>

double calculateArea(double r) {
    return 3.14 * r * r;
}

double calculateArea(double l, double w) {
    return l * w;
}

int main() {
    std::cout << "원의 넓이: " << calculateArea(5.0) << std::endl;
    std::cout << "사각형의 넓이: " << calculateArea(4.0, 6.0) << std::endl;
    return 0;
}

이와 같이 함수 리팩토링을 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.

함수 오버로딩을 사용하면 함수의 이름을 구체적이고 명확하게 짓고, 코드 중복을 피하는 데에 도움이 되므로, C++ 개발 시에 활용할 가치가 있습니다.

참고 자료