В вашей декларации вы возвращаете Point3D
, которое должно быть bool
:
Point3D operator==(const Point3D &p1) const;
^^^^^^^
should be bool
Вышеприведенное выглядит так, как будто вы объявляете оператор как функцию-член, можете поспорить, что вы реализуете его как свободную функцию Вы должны решить, что это такое. Если вы используете функцию-член, измените реализацию на:
bool Point3D::operator==(const Point3D &p2) const
{
if ( getX() == p2.getX() && getY() == p2.getY() && getZ() == p2.getZ() )
return true;
else
return false;
}
Или даже лучше (согласно комментарию @ibids):
bool Point3D::operator==(const Point3D &p2) const
{
return (getX() == p2.getX() && getY() == p2.getY() && getZ() == p2.getZ());
}
Как правило, подпись вашего определения должна соответствовать подписи вашей декларации.