我想重载 == 运算符来比较 2 个类对象。但这给了我一个错误。
代码:
#include <iostream>
using namespace std;
class Point
{
private:
int x;
int y;
public:
Point(int x, int y)
{
this->x = x;
this->y = y;
}
void PrintInfo()
{
printf("Точка имеет координаты [%d;%d]\n", x, y);
}
bool operator == (const Point& object)
{
return (x == object.x) && (y == object.y);
}
};
int main()
{
setlocale(LC_ALL, "ru");
Point a(5, 1);
Point b(9, 4);
bool result = a == b;
cout << result << endl;
}
错误本身:
我希望得到一些帮助并解释为什么会出现此错误:) 感谢您的关注!

是的,修复它并不难,你只需要不要偷懒,不要吝啬
const你能做的一切:)并在文中进一步...
但我个人不太清楚C2666来自哪里,似乎情况与链接中描述的任何内容都不相符。这意味着什么
我很感激大师在标准中的解释。
PS 对于那些不相信错误的人......
是的,如果你输入C++17或C++14标准密钥,那么就没有错误。但对于 c++20,这里有一个错误。这就是为什么我请大师解释一下C++20中添加了什么。