해결된 질문
작성
·
284
·
수정됨
0
교안 p103쪽에 있는 연산자 오버로딩에 관해 질문드립니다.
bool operator < (const Point & a) const{ 이 부분에서 < 대신
bool operator > (const Point & a) const{ ">"로 바꾸어 컴파일 했을때 오류가 발생하는 이유가 왜인지 모르겠습니다.
제가 이해한 연산자 오버로딩은 해당 연산자를 객체끼리도 비교 가능하게 만들기 위해서 오버로딩 하는거라고 이해를 했는데 그러면 > 연산자도 가능해야 하는 거 아닌가요?
아니면 bool 타입에서 연산자 오버로딩 할때 < 연산자만 가능한거일까요..
답변 1
0
안녕하세요 기루님 ㅎㅎ
오버로딩은 <, >, ==다 됩니다.
다만 C++의 sort함수가 사용하는 오퍼레이터는 operator<() 이거입니다.
그렇기 때문에 sort함수에 필요한 오퍼레이터가 정의가 안되서 에러가 발생한 것입니다.
>, < 이런 오퍼레이터의 오버로딩도 좋지만 알고리즘의 로직상 sort함수를 자주 쓰기 때문에 <를 기준으로 오버로딩하시는게 좋습니다.
감사합니다.