나는 Item 클래스 개체를 가리키는 Item Pointer 클래스에 대해 연산자 < 오버로드를 구현하는 방법을 파악하려고합니다. STL 세트의 항목에 대한 포인터를 저장하는 프로그램의 일부입니다. 과부하는 정렬 된 STL 세트 (제목순 알파벳순)에 필요합니다. 아래 코드에서 ItemPtr 오버로드에 대한 코드가 잘못되었다는 것을 알고 있습니다. 포인터를 역 참조하여 실제 항목을 가져올 수 있다고 생각했지만 구현 방법을 모르겠습니다. 나는 바른 길을 가기를 바랍니다. 누구든지 공유 할 수있는 어떤 포인터 (아무 말장련도 의도하지 않음)에 감사드립니다.오버로드 연산자 <클래스 개체에 대한 포인터
bool operator<(const Item& i1, const Item& i2)
{
const char* str1 = i1.getTitle().c_str();
const char* str2 = i2.getTitle().c_str();
return strcmp(str1, str2);
}
bool operator<(const ItemPtr& ip1, const ItemPtr& ip2)
{
const Item& i1 = *ip1;
const Item& i2 = *ip2;
return i1 < i2;
}
감사합니다.
왜 단순히'return ItemPtr1-> getTitle() < ItemPtr2-> getTitle()'이 아닌가? –
친구 기능 또는 클래스 기능입니까? – IanPudney
"어떻게 추론 작업을 작성합니까?" – doctorlove