'operator ++(int)&'运算符重载中的'&'是什么意思? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'operator ++(int)&'运算符重载中的'&'是什么意思? [重复]相关的知识,希望对你有一定的参考价值。

[方法签名后的&是什么意思和做什么?我有这个:

Iterator operator++(int) &

在我的迭代器类型中,但我不记得为什么必须将其放在那里(只是它解决了我前阵子的问题)。奇怪的是,我找不到太多关于它的信息,但是很可能是因为我不知道它的实际名字。

奖金问题,但这是签名的一部分吗?如果是,则此方法的指针的外观如何(&移到哪里)?

编辑:要回答奖励问题:它是签名的一部分(可以是重载)。具有ref限定签名意味着您不能拥有非ref限定签名。指针将是:Iterator(Iterator::*ptr)(int) & = &Iterator::operator++;

答案

这是一个左值引用限定符。说明了here

在重载解析期间,对X类的非静态cv限定成员函数进行如下处理:

  • [...]

  • 左值引用限定符:隐式对象参数具有对cv限定X的左值引用类型

这意味着成员函数只能在左值上使用。用较简单但不精确的术语来说,这可以防止在临时调用函数。

以上是关于'operator ++(int)&'运算符重载中的'&'是什么意思? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

练习3---python脚本

如何将 std::map::operator= 与初始值设定项列表一起使用

python中怎么表示是3的倍数或者尾数是3的数?

Python 3给出了错误未解决的参考'long'

java Operator ‘/‘ cannot be applied to ‘java.math.BigInteger‘, ‘int‘

python赋值问题