我有这个代码:
class LazyStream {
ostream& output;
std::list<string> pending;
public:
//...
LazyStream operator++(int n = 0){
LazyStream other(output);
if (n>0) output << "<#" << n << ">";
output << pending.pop_front();
return other;
}
我不明白为 operator++ 获取 int 值的含义。我虽然这只是表明运算符是后缀。接线员如何获得号码? 谁能举个例子?
谢谢
最佳答案
嗯,这是我第一次看到默认的 int
。
正如您所指出的,“虚拟”int
参数用于
区分后缀运算符和前缀。除了那个
它不是真正的假人:当你写的时候:
myVar ++;
和myVar
有一个用户定义的后缀++
,编译器
实际上称它为:
myVar.operator++( 0 );
没有什么可以阻止你写作:
myVar.operator++( 42 );
(当然,不得不这样做,在这种情况下,有点失败 运算符重载的目的。)
关于c++ - C++中后缀自增运算符中int变量的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944526/