본문/내용
멤버함수로 구현될 경우 – 단항 연산자의 경우
가장 왼쪽의 피연산자는 클래스에 속한 객체(또는 객체에 대한 참조)일때 (연산자 <<와 >> 의 예 참조)
(), [], -> 또는 대입연산자를 오버로딩할 경우, 이항 연산자이지만 언어의 규칙에 의해서 반드시 멤버함수로 선언되어야만 한다
비 멤버 함수로 구현될 경우 – 이항 연산자의 경우
가장 왼쪽 피연산자가 다른 클래스에 속한 것이라면 연산자 함수는 비멤버 함수로 구현 되어야 한다
비멤버 함수는 만약 그 함수가 직접적으로 그 클래스의 private 또는 protected 멤버에 접근해야 한다면 성능을 위해서 friend 함수로 구현하여야 한다