[c++] 함수 오버로딩과 오버로딩 지시어

함수 오버로딩(function overloading)은 C++에서 여러 함수가 같은 이름을 가질 수 있고, 매개변수 타입이나 갯수에 따라 호출될 함수를 결정하는 기술이다. 이 기능은 다형성(polymorphism)을 구현하는데 사용되며, 코드의 가독성과 재사용성을 높일 수 있다.

함수 오버로딩 예제

다음은 함수 오버로딩의 간단한 예제이다.

#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 함수가 정수와 실수를 매개변수로 받아 각각 다른 처리를 한다.

함수 오버로딩 지시어

C++11부터는 finaloverride라는 두 가지 함수 오버로딩을 조작하는 지시어가 도입되었다.

class Base {
public:
    virtual void display() final {
        cout << "Base display 함수" << endl;
    }
};

class Derived : public Base {
public:
    virtual void display() override {
        cout << "Derived display 함수" << endl;
    }
};

결론

함수 오버로딩은 C++에서 같은 이름을 가진 여러 개의 함수를 정의하는 기법이다. 이를 통해 코드를 단순화하고 가독성을 높일 수 있으며, 오버로딩 지시어를 통해 오버로딩을 더욱 쉽게 관리할 수 있다.

함수 오버로딩과 오버로딩 지시어 참조