#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
class Integer
{
//friend ostream& operator<< (ostream& cout, const Integer& temp);
public:
Integer() {}
//前置递增运算符重载:
Integer& operator++()
{
this->integer++;
return *this;
}
//后置递增运算符重载:
//注意返回值,非引用
Integer operator++(int)
{
Integer temp = *this;
this->integer++;
return temp;
}
//不是常函数,是因为传入的是const 修饰的对象,所以形参也要是const修饰的
//而第一个形参是编译器默认的this指针,不可以显式写出来,所以就在括号后面加一个const表示修饰的是this指针
void display() const
{
cout << this->integer;
}
protected:
private:
int integer{};
};
ostream& operator<< (ostream& cout, const Integer& temp)
{
//cout << "integer = " << temp.integer << endl;
temp.display();
return cout;
}
//输出的对象是一个类,需要重载运算符<<
//ostream& operator<< (ostream& cout, const Integer& temp)
//{
// cout << "integer = " << temp.integer << endl;
//}
void test01()
{
Integer pinteger01;
++pinteger01;
cout << (++pinteger01) << endl;
cout << pinteger01 << endl;
}
void test02()
{
Integer pinteger02;
pinteger02++;
cout << pinteger02++ << endl;
cout << pinteger02 << endl;
}
int main()
{
test01();
test02();
return 0;
}
//第一次调用:
//调用拷贝函数->原来的类的整数值+1->返回一个被拷贝后的类的对象
//第二次调用:
//调用拷贝函数(被拷贝的类的整数值已经在原来的基础上自增了)->原来的类的整数值+1->返回一个被拷贝后的类的对象
C++递增运算符的重载
最新推荐文章于 2024-03-19 11:06:17 发布