一 概述
上一节介绍了使用operator++()重载运算符定义前置加,本节介绍重载后置自加运算符
二 示例及结果输出
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 32 33 34 35 36 37 38
| #include<iostream> using namespace std; class num { private: int n; public: num(){n=1;cout<<"构造函数执行\n";} num(int i){n=i;cout<<"带参数的构造函数执行\n";} num(const num&s){this->n=s.n;cout<<"复制构造函数执行\n";} ~num(){cout<<"析构函数执行\n";} int get()const{return n;} void set(int x){n=x;} void add(){n++;} const num &operator++() { ++n; return *this; } const num&operator++(int o) { num temp(*this); ++n; return temp; }
}; int main() { num i; cout<<"i:"<<i.get()<<endl; i.add(); cout<<"i:"<<i.get()<<endl; num n=i++; cout<<"i:"<<i.get()<<endl; cout<<"n:"<<n.get()<<endl; return 0; }
|
2.2 输出结果
1 2 3 4 5 6 7 8 9 10
| 构造函数执行 i:1 i:2 复制构造函数执行 析构函数执行 复制构造函数执行 i:3 n:2 析构函数执行 析构函数执行
|
2.3 代码说明
- operator++(int o):来定义后置自加运算符