[c++] 연산자 오버로딩과 예외 안전성
  1. 연산자 오버로딩
  2. 예외 안전성

연산자 오버로딩

연산자 오버로딩은 사용자가 새로운 의미를 정의할 수 있도록 하는 C++의 강력한 기능 중 하나입니다.

아래는 예제 코드입니다.

#include <iostream>

class Vector {
public:
    Vector(int x, int y) : x(x), y(y) {}

    Vector operator+(const Vector& v) const {
        return Vector(x + v.x, y + v.y);
    }

private:
    int x, y;
};

int main() {
    Vector v1(1, 2);
    Vector v2(3, 4);
    Vector result = v1 + v2;

    std::cout << result.x << ", " << result.y << std::endl;

    return 0;
}

위의 예제 코드에서는 + 연산자를 통해 Vector 클래스에 대한 새로운 의미를 정의하고 있습니다.


예외 안전성

C++에서 예외 안전성은 프로그램이 예외가 발생했을 때 안전하게 처리되도록 하는 개념입니다.

예외가 발생하여 객체의 상태가 망가지는 것을 방지하고자 하는데, 이를 위해 강력보장기본보장 등 다양한 보장 수준이 있습니다.

예를 들어, try, catch, throw를 사용하여 예외를 처리하고, RAII(Resource Acquisition Is Initialization) 기법을 통해 예외가 발생해도 자원을 안전하게 해제할 수 있습니다.


참고문헌: