[c++] 연산자 오버로딩의 문법
연산자 재정의 문법
C++에서 연산자를 재정의하는 방법은 다음과 같습니다.
반환타입 operator 연산자기호 (매개변수목록) {
// 연산을 수행하는 코드
}
여기서 operator
는 C++ 연산자 중 하나이며, 연산자기호
는 재정의하려는 연산자의 기호입니다. 매개변수목록
에는 해당 연산자가 사용될 때 받게 되는 매개변수가 포함됩니다. 반환타입은 연산자가 수행된 후의 결과를 나타냅니다.
예제
아래는 +
연산자를 재정의하는 간단한 예제입니다. 이 예제는 두 개의 Complex
객체를 더하는 경우를 다룹니다.
class Complex {
private:
int real, imag;
public:
Complex(int r, int i) : real(r), imag(i) {}
Complex operator+ (const Complex& obj) {
Complex temp(0, 0);
temp.real = real + obj.real;
temp.imag = imag + obj.imag;
return temp;
}
};
위의 예제에서 operator+
함수는 두 개의 Complex
객체를 더하는 연산을 정의합니다.
연산자 오버로딩을 잘 활용하면 사용자 정의 데이터 타입에 대해 자연스러운 연산이 가능하게 됩니다.
참고 자료
- cplusplus.com - Operator overloading
- GeeksforGeeks - Operator Overloading in C++
- learncpp.com - Overloading the arithmetic operators