This method:
bool Point::Intersects(const Line& line) const { return (line.ContainsPoint(*this, false)); }
causes this error: cannot co
In this case you are calling a non-const method on a const reference which isn't allowed. You have two options:
const_cast
ContainsPoint