小编Dan*_*any的帖子

相等运算符是否需要声明 const 关键字?

我正在观看这个关于 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关键字是必要的吗?

c++ struct constants operator-keyword

2
推荐指数
1
解决办法
148
查看次数

标签 统计

c++ ×1

constants ×1

operator-keyword ×1

struct ×1