相关疑难解决方法(0)

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案索引,它们是最有意义的顺序:

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ operator-overloading operators c++-faq

2074
推荐指数
8
解决办法
88万
查看次数

考虑非静态成员函数的 operator== 重载

我已经定义了一个这样的类

using namespace std;
class foo {
public:
  typedef std::pair< int, int > index;
  bool operator == ( const index &l, const index &r )
  {
    return (l.first == r.first && l.second == r.second);
  }
  void bar()
  {
    index i1;
    i1.first = 10;
    i1.second = 20;
    index i2;
    i2.first = 10;
    i2.second = 200;
    if (i1 == i2)
       cout << "equal\n";
  }
};
Run Code Online (Sandbox Code Playgroud)

但是我在 Windows 中收到此错误

error C2804: binary 'operator ==' has too many parameters
Run Code Online (Sandbox Code Playgroud)

而这个错误在 linux 中

operator==(const  std::pair<int, …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

4
推荐指数
1
解决办法
1246
查看次数

标签 统计

c++ ×2

operator-overloading ×2

c++-faq ×1

operators ×1