[c++] 연산자 오버로딩과 예외 안전성
연산자 오버로딩
연산자 오버로딩은 사용자가 새로운 의미를 정의할 수 있도록 하는 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) 기법을 통해 예외가 발생해도 자원을 안전하게 해제할 수 있습니다.
참고문헌:
- C++ 프로그래밍 위키백과.