递增运算符 “++” 的重载(C++)
瓦正在学 C++ ,会持续更新详细的 学习进度 和 笔记 ,希望大家督促指导喔!
记得点个关注噻!
#include<iostream>
using namespace std;
// 递增运算符 “++” 的重载:
class MyInteger {
//采用友员实现 左移运算符重载函数 对私有权限下的 m_num 的访问
friend ostream& operator<< (ostream& cout, MyInteger mint);
public:
//构造函数:
//将 m_num 初始化为 0
MyInteger() {
m_num = 0;
}
// 前置 递增运算符 的重载:
MyInteger& operator++ () {//返回引用的目的是:操作的是同一块空间
//实现变量的递增
m_num++;
//返回
return *this;
}
// 后置 递增运算符 的重载:
MyInteger operator++(int) {//加 int 的目的是实现函数的重载;
//返回不引用是因为这是临时变量
//备份
MyInteger temp;
temp.m_num = m_num;
//实现变量的递增
m_num++;
//返回备份
return temp;
}
private:
int m_num;
};
//需要重载 左移运算符 "<<" :
ostream& operator<< (ostream& cout, MyInteger mint) {
cout << mint.m_num << endl;
return cout;
}
//测试函数:用于测试 前置 的递增运算符:
void test_01() {
MyInteger mint;
cout << "mint = " << mint << endl; //先测试左移运算符的重载
//结果为:mint = 0
cout << "++mint = " << ++mint << endl;// ++mint = 1 测试成功
cout << "++mint = " << ++mint << endl;// ++mint = 2 测试成功,操作同一空间
}
//测试函数:用于测试 后置 的递增运算符:
void test_02() {
MyInteger mint;
cout << "mint = " << mint << endl;// mint = 0
cout << "mint++ = " << mint++ << endl;// mint++ = 0 测试成功
cout << "mint++ = " << mint++ << endl;// mint++ = 1 测试成功
}
int main() {
test_01();
test_02();
return 0;
}