目录
- 一、程序及输出
- 1.1 前置++重载
- 1.2 后置++重载
- 二、分析与总结
一、程序及输出
1.1 前置++重载
#include<iostream>
using namespace std;
class MyInter
{
friend ostream& operator<<(ostream& cout, MyInter& myInt);
public:
MyInter()
{
m_Num = 0;
}
//前置++ 重载
MyInter& operator++() //返回引用
{
this->m_Num++;
return *this;
}
private:
int m_Num;
};
ostream& operator<<(ostream& cout , MyInter& myInt)
{
cout << myInt.m_Num;
return cout;
}
void test01()
{
MyInter myInt;
cout << ++(++myInt) << endl;
cout << myInt << endl;
}
int main(){
test01();
system("pause");
return EXIT_SUCCESS;
}
输出:
1.2 后置++重载
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class MyInter
{
friend ostream& operator<<(ostream& cout, MyInter& myInt);
public:
MyInter()
{
m_Num = 0;
}
//后置++ 重载
MyInter operator++(int) //返回值
{
//先记录初始状态
MyInter temp = *this;
this->m_Num++;
return temp;
}
private:
int m_Num;
};
ostream& operator<<(ostream& cout , MyInter& myInt)
{
cout << myInt.m_Num;
return cout;
}
void test02()
{
MyInter myInt;
cout << myInt++ << endl;
cout << myInt << endl;
}
int main(){
test02();
system("pause");
return EXIT_SUCCESS;
}
输出:
二、分析与总结
在 C++ 中,我们可以重载前置和后置递增运算符 ++ 来实现自定义类型的递增操作。
前置递增运算符重载
:
前置递增运算符 ++ 可以被重载为类的成员函数或全局函数。
前置递增运算符的重载函数不需要额外的参数。
在重载函数内部,直接对对象进行递增操作,并返回递增后的对象的引用。
重载的前置递增运算符函数将在递增操作发生时被调用。
后置递增运算符重载
:
后置递增运算符 ++ 也可以被重载为类的成员函数或全局函数。
后置递增运算符的重载函数需要一个额外的 int 参数(用于区分前置和后置版本)。
在重载函数内部,先创建一个临时对象保存递增前的值,然后对原对象进行递增操作,并返回保存的临时对象。
重载的后置递增运算符函数将在递增操作发生时被调用。
使用递增运算符
:
前置递增运算符 ++ 和后置递增运算符 ++ 可以通过简单地在对象前面或后面使用 ++ 运算符来调用。
前置递增运算符会先递增对象,然后返回递增后的对象。
后置递增运算符会先返回原对象的值,然后再递增对象。