Я хочу написать класс, совместимый с std :: set, поэтому я перегружаю оператор "меньше чем" следующим образом.Это работает.
bool Segment::SVertex::operator<(const SVertex &rhs) const
{
return id < rhs.id;
}
Однако, поскольку я пишу на Java больше, чем на C ++, 'rhs.id' выглядит для меня очень неудобно.Поэтому я изменяю его на 'rhs.getId ()', где getId () - это просто обычная функция получения:
long SVertex::getId(){return id;}
Это оказывается ошибкой времени компиляции: невозможно преобразовать указатель "this"от "const Segment :: SVertex" до "Segment :: SVertex &"
(обратите внимание, что мой VS2008 не английский, и я перевел сообщение об ошибке, поэтому строка выше не обязательно точна)
Я только знаю, что «&» обозначает передачу по ссылке, а «const» запрещает любые изменения.Я не совсем понимаю, что происходит за сценой.