-算数运算符重载
#include <iostream>
using namespace std;
class Sub
{
friend const Sub operator-(const Sub &L, const Sub &R);//全局函数作友元
private:
int a;
int b;
public:
Sub(){}
Sub(int a, int b):a(a),b(b)
{}
void show()
{
cout << "a = " << a << "b = " << b << endl;
}
};
const Sub operator-(const Sub &L, const Sub &R)
{
Sub temp;
temp.a = L.a - R.a;
temp.b = L.b - R.b;
return temp;
}
int main()
{
Sub A1(15, 16);
Sub A2(21, 22);
Sub A3 = A1 - A2;//Sub A3 = operator-(A1, A2)
A3.show();
return 0;
}
*算数运算符重载
#include <iostream>
using namespace std;
class Mul
{
friend const Mul operator-(const Mul &L, const Mul &R);//全局函数作友元
private:
int a;
int b;
public:
Mul(){}
Mul(int a, int b):a(a),b(b)
{}
void show()
{
cout << "a = " << a << "b = " << b << endl;
}
};
const Mul operator*(const Mul &L, const Mul &R)
{
Mul temp;
temp.a = L.a * R.a;
temp.b = L.b * R.b;
return temp;
}
int main()
{
Mul A1(15, 16);
Mul A2(21, 22);
Mul A3 = A1 * A2;//Mul A3 = operator*(A1, A2)
A3.show();
return 0;
}