인프런 커뮤니티 질문&답변

기루님의 프로필 이미지
기루

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

교안 관련 질문드립니다.

해결된 질문

작성

·

284

·

수정됨

0

교안 p103쪽에 있는 연산자 오버로딩에 관해 질문드립니다.

 

bool operator < (const Point & a) const{ 이 부분에서 < 대신

 

bool operator > (const Point & a) const{ ">"로 바꾸어 컴파일 했을때 오류가 발생하는 이유가 왜인지 모르겠습니다.

 

제가 이해한 연산자 오버로딩은 해당 연산자를 객체끼리도 비교 가능하게 만들기 위해서 오버로딩 하는거라고 이해를 했는데 그러면 > 연산자도 가능해야 하는 거 아닌가요?

아니면 bool 타입에서 연산자 오버로딩 할때 < 연산자만 가능한거일까요..

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 기루님 ㅎㅎ

오버로딩은 <, >, ==다 됩니다.

다만 C++의 sort함수가 사용하는 오퍼레이터는 operator<() 이거입니다.

그렇기 때문에 sort함수에 필요한 오퍼레이터가 정의가 안되서 에러가 발생한 것입니다.

>, < 이런 오퍼레이터의 오버로딩도 좋지만 알고리즘의 로직상 sort함수를 자주 쓰기 때문에 <를 기준으로 오버로딩하시는게 좋습니다.

 

감사합니다.

기루님의 프로필 이미지
기루

작성한 질문수

질문하기