CPP学习之——重载后置自加运算符(11.7)

一 概述

上一节介绍了使用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):来定义后置自加运算符