0
회원이 아닌 과부하 또는 회원 과부하를 사용해야합니까? 어떤 것을 사용해야하는지 어떻게 알 수 있습니까? 이 함수는 클래스의 공용 인터페이스에 대한 액세스를 필요로하는 경우비회원 연산자 오버로딩은 언제 사용해야합니까?
이만들 : (이 몹시 엄격한 또는 필수 비록)
회원이 아닌 과부하 또는 회원 과부하를 사용해야합니까? 어떤 것을 사용해야하는지 어떻게 알 수 있습니까? 이 함수는 클래스의 공용 인터페이스에 대한 액세스를 필요로하는 경우비회원 연산자 오버로딩은 언제 사용해야합니까?
이만들 : (이 몹시 엄격한 또는 필수 비록)
당신이 operator<
또는 swap
같은 것을 생각하는 경우는, 엄지 손가락의 규칙있다 그것은 자유로운 비회원 기능입니다. 그렇지 않으면 멤버 함수로 만듭니다. (또는 friend
자유 함수를 고려할 수 있습니다.)
연산자의 오버로드의 경우 사용자 정의 유형으로 피연산자 중 하나 이상이 필요합니다.
무료 함수의 설계상의 이점은 적용 가능한 각 클래스에 대해 연산자 버전을 구현하려는 경우 템플릿을 만들고 M * N
이 아닌 M + N
의 복잡성을 얻는 것입니다. 이는 귀하의 상황과 관련이있을 수도 있고 그렇지 않을 수도 있습니다.
해당 주제의 Nawaz's very fine answer도 참조하십시오.
답변 주셔서 감사합니다. 매우 도움이됩니다. – flumpb