CPP学习之——重载自加运算符-前置/后置自加

一 概述

  • 重载自加运算符,如何判断哪个是前置自加和后置自加?
  • 如何查看参考文档,找到前置自加和后置自加说明

二 重载自加运算符,如何判断哪个是前置自加和后置自加?

2.1 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
using namespace std;
class A {
public:
A(int x) {
rx = x;
}
friend ostream& operator<<(ostream &s, A &a) {
s << a.rx;
return s;
}
int operator++() {
cout << "++i\n";
rx++;
return rx;
}
int operator++(int) {
cout << "i++\n";
int i = rx;
rx++;
return i;
}
private:
int rx;
};

int main() {
A a(3);
cout << ++a << a++ << endl;
return 0;
}

2.2 ++a与a++分别执行了哪个operator自加重载

  • ++a:执行了int operator++()重载
  • a++:执行了operator++(int)重载

三 如何查看参考文档,找到前置自加和后置自加说明

  • 打开https://en.cppreference.com/w/网站,点击Language下面的Overloading
  • 滑动到底部,找到运算符优先级(Operator precedence)
  • 找到前缀后缀自增自减
  • 点开找到官方说明

四 参考

  • Increment/decrement operators