【问题标题】:iterator operator overload ++ & -- has an argument int but not used [duplicate]迭代器运算符重载 ++ & -- 有一个参数 int 但未使用 [重复]
【发布时间】:2020-03-27 07:58:14
【问题描述】:

我在多个来源遇到过这种函数签名。它有一个参数int,但函数逻辑不使用该参数。我不确定为什么以这种方式定义? .如果不需要参数,为什么不直接声明没有参数的函数。

  iterator operator--(int) {
     iterator copy(*this);
     operator--();
     return copy;
  }

谢谢

【问题讨论】:

    标签: c++ iterator operator-overloading


    【解决方案1】:

    这是一个虚拟参数,仅用于区分prefix and postfix operators

    int参数是一个虚拟参数,用来区分 运算符的前缀和后缀版本。当用户定义 后缀运算符被调用,传入该参数的值是 始终为零,尽管可以通过调用运算符来更改它 函数调用表示法(例如,a.operator++(2) 或 operator++(a, 2))。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-18
      • 2020-06-14
      • 1970-01-01
      • 2011-12-07
      • 2015-08-22
      • 2013-09-07
      • 2017-02-22
      • 2012-03-12
      相关资源
      最近更新 更多