[c++] 함수 오버로딩과 형변환 연산자 오버로딩

C++은 함수 오버로딩과 형변환 연산자 오버로딩을 지원하여 다양한 상황에서 유연하고 강력한 프로그래밍을 가능하게 합니다.

함수 오버로딩 (Function Overloading)

함수 오버로딩은 동일한 이름을 가진 함수가 여러 개 정의될 수 있도록 하는 기능입니다. 함수 오버로딩은 각 함수가 서로 다른 매개변수 목록을 가지고 있을 때 사용됩니다. 예를 들어, add라는 함수를 정의할 때 정수형과 실수형 매개변수를 모두 받을 수 있도록 다음과 같이 정의할 수 있습니다.

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

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

이렇게 하면 정수형 매개변수를 받는 add 함수와 실수형 매개변수를 받는 add 함수가 모두 정의될 수 있게 됩니다.

형변환 연산자 오버로딩 (Overloading Conversion Operators)

형변환 연산자 오버로딩은 사용자가 정의한 클래스나 구조체에 대해 형변환을 직접 지원하도록 하는 기능입니다. 이를 통해 다른 자료형으로의 형변환을 사용자가 원하는 대로 정의할 수 있습니다.

다음은 MyClass 클래스에 대해 형변환 연산자 오버로딩을 하는 예시입니다.

class MyClass {
public:
    operator int() {
        return someInteger;
    }
private:
    int someInteger;
};

이렇게 하면 MyClass 객체를 정수형으로 형변환할 때 someInteger 멤버 변수의 값을 반환하도록 정의할 수 있습니다.

이렇게 함수 오버로딩과 형변환 연산자 오버로딩을 활용하면 코드를 더 유연하고 가독성 좋게 작성할 수 있으며, 다형성을 구현하는 데에도 도움이 됩니다.

참고 자료