'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)&'运算符重载中的'&'是什么意思? [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 std::map::operator= 与初始值设定项列表一起使用
java Operator ‘/‘ cannot be applied to ‘java.math.BigInteger‘, ‘int‘