算数运算符重载
#include <iostream>
using namespace std;
//封装类
class Stu
{
friend const Stu operator+(const Stu &L, const Stu &R);
friend const Stu operator*(const Stu &L, const Stu &R);
private:
int a;
int b;
public:
Stu()
{
}
Stu(int a,int b):a(a),b(b)
{
}
void show()
{
cout << "a= " << a << " " << "b= " << b << endl;
}
//成员函数实现"-"重载
const Stu operator - (const Stu &R) const
{
Stu temp;
temp.a = a - R.a;
temp.b = b - R.b;
return temp;
}
};
//全局函数实现"+"重载
const Stu operator + (const Stu &L, const Stu &R)
{
Stu temp;
temp.a = L.a + R.a;
temp.b = L.b + R.b;
return temp;
}
//全局函数实现"*"重载
const Stu operator * (const Stu &L, const Stu &R)
{
Stu temp;
temp.a = L.a * R.a;
temp.b = L.b * R.b;
return temp;
}
int main()
{
Stu s1(2,3);
Stu s2(4,5);
Stu s3 = s1 + s2;
Stu s4 = s1 - s2;
Stu s5 = s3 * s4;
s3.show();
s4.show();
s5.show();
return 0;
}