[c++] 함수 오버로딩과 정적 다형성

함수 오버로딩을 사용하면 코드의 가독성을 높일 수 있고, 유사한 동작을 하는 함수들을 하나의 이름으로 통합할 수 있습니다. 이는 프로그래머가 일관된 규칙으로 함수를 호출할 수 있도록 도와줍니다.

하지만 함수 오버로딩은 런타임 다형성이 아닌 정적 다형성의 예시입니다. 즉, 프로그램이 컴파일될 때 호출될 함수가 이미 결정됩니다. 반면에 런타임 다형성은 호출될 함수가 런타임에 결정됩니다.

아래는 함수 오버로딩의 예시입니다.

#include <iostream>

void printMessage(std::string message) {
    std::cout << message << std::endl;
}

void printMessage(int number) {
    std::cout << "Number: " << number << std::endl;
}

int main() {
    printMessage("Hello, world!"); // 문자열을 출력
    printMessage(5); // 숫자를 출력
    return 0;
}

이 예시에서는 printMessage라는 이름으로 문자열을 출력하는 함수와 숫자를 출력하는 함수가 오버로딩되어 있습니다. 함수 오버로딩을 통해 두 가지 다른 타입의 인자를 받아 처리할 수 있습니다.

이처럼 C++의 함수 오버로딩은 코드 작성을 간편하고 효과적으로 만들어주는 강력한 기능입니다.

참고 문헌: https://www.learncpp.com/cpp-tutorial/76-function-overloading/