自学内容网 自学内容网

C++学习Day05之递增运算符重载


一、程序及输出

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 参数(用于区分前置和后置版本)。
在重载函数内部,先创建一个临时对象保存递增前的值,然后对原对象进行递增操作,并返回保存的临时对象。
重载的后置递增运算符函数将在递增操作发生时被调用。
使用递增运算符
前置递增运算符 ++ 和后置递增运算符 ++ 可以通过简单地在对象前面或后面使用 ++ 运算符来调用。
前置递增运算符会先递增对象,然后返回递增后的对象。
后置递增运算符会先返回原对象的值,然后再递增对象。


原文地址:https://blog.csdn.net/qq_45649553/article/details/136152654

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!