[c++] 연산자 오버로딩을 통한 커스텀 타입의 수학적 연산 지원
커스텀 데이터 타입에 대해 수학적 연산을 지원하기 위해서는 연산자 오버로딩을 사용할 수 있습니다.
연산자 오버로딩이란 무엇인가?
연산자 오버로딩은 기존의 연산자를 특정한 클래스나 구조체에 대해 사용할 수 있도록 하는 기술입니다.
연산자 오버로딩의 예시
아래는 벡터 클래스(Vector)를 만들어 연산자 오버로딩을 적용한 예시입니다.
class Vector {
private:
int x, y;
public:
Vector(int x, int y) : x(x), y(y) {}
Vector operator+(const Vector& v) {
return Vector(this->x + v.x, this->y + v.y);
}
Vector operator-(const Vector& v) {
return Vector(this->x - v.x, this->y - v.y);
}
int operator*(const Vector& v) {
return this->x * v.x + this->y * v.y;
}
};
위 코드에서 +
, -
, *
연산자를 오버로딩하여, Vector 클래스의 인스턴스끼리 덧셈, 뺄셈, 내적 연산을 수행할 수 있도록 했습니다.
사용 예시
Vector v1(3, 4);
Vector v2(1, 2);
Vector result1 = v1 + v2; // result1은 (4, 6)
Vector result2 = v1 - v2; // result2는 (2, 2)
int result3 = v1 * v2; // result3은 11
위와 같이 연산자 오버로딩을 통해 커스텀 타입에 대한 수학적 연산을 손쉽게 지원할 수 있습니다.
마무리
연산자 오버로딩은 기존의 연산자를 재정의하여 사용자 정의 타입에 대한 연산을 가능케 합니다. 이를 활용하여 사용자 정의 데이터 타입에 대한 다양한 연산을 간편하게 수행할 수 있습니다.
더 많은 정보는 cplusplus.com을 참고하세요.
제공드린 정보가 도움이 되었기를 바라며, 추가로 궁금한 점이 있으시다면 언제든지 물어보세요!