아래와 같이 여러 매개 변수로 연산자 + 오버로드를 수행하고 있습니다.여러 매개 변수를 사용하여 오버로드 연산자 +에서 const 참조를 전달하는 이유
컴파일 할 수 없으며 "연산자 +와 일치하지 않음"을 반환 할 수 없습니다. 나는 다중 매개 변수 ((a + b) + c)의 알고리즘을 읽고 이해한다. 왜 효과가 없습니까?
friend Integer operator+ (const Integer & a,const Integer & b){
Integer I (a.value+b.value);
return I;
};
그리고
friend Integer & operator+ (Integer & a,Integer & b){
Integer I (a.value+b.value);
return I;
};
하지만 이유를 잘 모릅니다 : 그러나, 나는 그것이 작동되도록하는 두 가지 방법을 발견했다.
friend Integer operator+ (Integer & a, Integer & b)
// ^^^^^^^^^ ^^^^^^^^^
a
및 b
이 좌변 참조 있습니다 : 당신에게 당신의 operator+
서명에
오버로드 된 연산자의 [표준 형식] (http://en.cppreference.com/w/cpp/language/operators)에 대해 읽어보십시오. 그것은 모두 잘 정의되어 있으며 잘 문서화되어 있습니다. – Useless