[c++] 연산자 오버로딩과 const 멤버 함수

C++에서는 연산자 오버로딩을 통해 사용자가 직접 정의한 클래스나 구조체에 대해 다양한 연산자를 재정의할 수 있습니다. 또한, const 멤버 함수를 사용하여 객체의 상태가 변경되지 않음을 보장하여 안전하게 객체를 사용할 수 있습니다.

연산자 오버로딩

연산자 오버로딩은 특정한 연산자를 클래스나 구조체에 대해 새로운 의미로 정의하는 기능입니다. 예를 들어, + 연산자를 사용하여 두 개의 객체를 더하는 기능을 정의할 수 있습니다.

class Vector {
public:
    int x, y;
    Vector operator+(const Vector& v) {
        Vector result;
        result.x = x + v.x;
        result.y = y + v.y;
        return result;
    }
};

위의 예시에서 + 연산자를 오버로딩하여 Vector 클래스에 대해 두 개의 객체를 더하는 기능을 추가했습니다.

const 멤버 함수

const 멤버 함수를 사용하면 해당 멤버 함수 내에서 객체의 데이터 멤버를 변경할 수 없습니다. 이는 객체의 상태가 변경되지 않음을 보장하여 객체를 안전하게 사용할 수 있게 합니다.

class MyClass {
public:
    int getData() const {
        return data;
    }

private:
    int data;
};

위의 예시에서 getData 함수 뒤에 붙은 const 키워드는 해당 멤버 함수가 객체의 상태를 변경하지 않음을 나타냅니다.

연산자 오버로딩과 const 멤버 함수는 C++에서 객체 지향 프로그래밍을 더욱 효율적으로 할 수 있도록 도와주는 중요한 기능입니다.

참고 자료