我正在观看这个关于 C++ 最佳实践的研讨会,演讲者给出了以下代码示例:
struct Data{
int x;
int y;
bool operator==(Data &rhs){
return x == rhs.x && y == rhs.y;
}
};
Run Code Online (Sandbox Code Playgroud)
然后他问这段代码中缺少什么。作为一个新手,我以为没有遗漏什么,但后来他指出const缺少 2 个关键字,如下所示:
struct Data{
int x;
int y;
bool operator==(const Data &rhs) const{
return x == rhs.x && y == rhs.y;
}
};
Run Code Online (Sandbox Code Playgroud)
现在我认为这就像一个不修改对象的承诺。但有人可以解释为什么这些const关键字是必要的吗?