Невозможно преобразовать указатель 'this' из 'const Line' в 'Line &' объяснение?

Этот метод:

bool Point::Intersects(const Line& line) const {
    return (line.ContainsPoint(*this, false));
}

вызывает эту ошибку: не удается преобразовать указатель this из const Line в Line & Это изменение:

bool Point::Intersects(const Line& line) const {
    return const_cast<Line&>(line).ContainsPoint(*this, false);
}

исправляет ошибку, но не кажется правильным способом исправить проблему. Почему исходный метод считается ошибочным?

Если это помогает, ContainsPoint (const Point & point, bool isInfinite) не является константным, и все методы, которые он вызывает, также не являются константными.

44
задан Rachel Gallen 15 April 2013 в 15:45
поделиться