一 概述
- 重载自加运算符,如何判断哪个是前置自加和后置自加?
- 如何查看参考文档,找到前置自加和后置自加说明
二 重载自加运算符,如何判断哪个是前置自加和后置自加?
2.1 示例
#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)
- 找到前缀后缀自增自减
- 点开找到官方说明
四 参考