클래스의 연산자 함수를 정의하는 방법은 다음 두가지가 있다.
① 클래스의 멤버 함수로 작성한다.
② 전역 함수로 작성한다.
①
리턴타입 Class::operator 연산자(인수 목록)
{
함수 본체;
}
ex) const Complex operator+ (const Complex &T) const {
//(리턴타입) (함수이름) (인수(피연산자) (상수함수)
Complex R;
R.image = image + T.image;
R.real = real + T.real;
return R;
} //inline 함수로 작성 예
ㅁ main에서의 사용법 : A+B <-> A.operator + (B) //A는 연산자함수를 호출하는 객체
//B는 연산자함수로 전달되는 객체
ㅁ const 의 사용 이유
1.const Complex operator+ (2.const Complex &T) 3.const
1번 리턴되는 값도 상수이다.
2번 피연산자, 즉 우변은 상수이다.
3번 호출객체, 즉 좌변이 상수이다.
ㅁ 이상적인 연사자 오버로딩의 예
const Complex operator +(const Complex &T) const {
Complex R;
R.image = image + T.image;
R.real = real + T.real;
return R;
}