Operator Overload
연산자 오버로딩 기준
사용자 정의 타입도 +, ==,
<< 같은 표현을 쓸 수 있지만, 독자가 예상하는
동작을 지켜야 합니다.
연산자 오버로딩 의미 기준연산자 오버로딩은 기존 기호의 의미와 맞을 때만 자연스럽습니다.
멤버 형태와 반환 규칙을 먼저 정합니다.
연산자 오버로딩 점검 항목연산자 오버로딩은 피연산자 위치, 반환 타입, 기존 연산자 의미와의
일관성을 함께 맞춥니다.
비멤버 연산자 선택
연산자 반환 관례
의미 보존+는 더하기나 결합처럼 직관적 의미가 있어야 합니다.
const 정확성피연산자를 바꾸지 않는 연산은 const 참조와 const 멤버를
활용합니다.
남용 금지예상 밖 동작을 넣을 바에는 이름 있는 함수가 더 안전합니다.
연산자 의도 오버로딩의 목표는 멋진 문법이 아니라 타입을 자연스럽게 읽히게 하는 것입니다.