연산자를 오버로딩하여 사용자 정의 데이터 타입에 대해서 연산 동작을 정의하는 함수이다.
// operator
const CMyString& operator=(const TCHAR* p);
미리 정해둔 CMyString클래스와 TCHAR 타입이 대입이 될 때, 동작하는 함수이다.
#include <iostream>
class MyClass {
int value;
public:
MyClass(int val) : value(val) {};
// const를 함수 뒤에 오면 멤버함수는 객체의 상태를 변경못하게 막는다.
MyClass operator+(const MyClass& other) const {
MyClass result(value + other.value);
return result;
}
// 이항연산자 호출
void print() const {
std::cout << "Value: " << value << std::endl;
}
};
int main(){
MyClass obj1(5);
MyClass obj2(10);
// 이항 연산자 호출
MyClass result = obj1 + obj2;
// 결과 출력
result.print();
return 0;
}
헤더 파일에서 미리 선언이 된 함수를 .cpp파일에서 오버로딩하여 구현부를 완성해주었다. 이렇게 되면 추후에 CMyString과 TCHAR의 연산이 이루어지면 자동으로 컴파일은 이에 맞는 operator를 찾아서 구현부를 동작시켜준다.