#include <iostream>
using namespace std;
class Person
{
private:
int a;
int b;
public:
Person(){}
Person(int a, int b):a(a),b(b)
{
}
void show()
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
const Person operator-(const Person &R) const
{
Person temp;
temp.a = a - R.a;
temp.b = b - R.b;
return temp;
}
};
int main()
{
Person p1(30,20);
Person p2(10,10);
Person p3 = p1 - p2;
p3.show();
return 0;
}
(2)全局函数实现算术运算符(-)重载
const 类名 operator#(const 类名 &L, const 类名 &R)
{}
#include <iostream>
using namespace std;
class Person
{
friend const Person operator-(const Person &L, const Person &R);
private:
int a;
int b;
public:
Person(){}
Person(int a, int b):a(a),b(b)
{
}
void show()
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
};
const Person operator-(const Person &L, const Person &R)
{
Person temp;
temp.a = L.a - R.a;
temp.b = L.b - R.b;
return temp;
}
int main()
{
Person p1(30,20);
Person p2(10,10);
Person p3 = p1 - p2;
p3.show();
return 0;
}
实现结果:
2.(1)成员函数实现算术运算符(*)重载
const 类名 operator#(const 类名 &R) const
{}
#include <iostream>
using namespace std;
class Person
{
private:
int a;
int b;
public:
Person(){}
Person(int a, int b):a(a),b(b)
{
}
void show()
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
const Person operator*(const Person &R) const
{
Person temp;
temp.a = a * R.a;
temp.b = b * R.b;
return temp;
}
};
int main()
{
Person p1(3,2);
Person p2(2,4);
Person p3 = p1 * p2;
p3.show();
return 0;
}
(2)全局函数实现算术运算符(*)重载
const 类名 operator#(const 类名 &L, const 类名 &R)
{}
#include <iostream>
using namespace std;
class Person
{
friend const Person operator*(const Person &L, const Person &R);
private:
int a;
int b;
public:
Person(){}
Person(int a, int b):a(a),b(b)
{
}
void show()
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
};
const Person operator*(const Person &L, const Person &R)
{
Person temp;
temp.a = L.a * R.a;
temp.b = L.b * R.b;
return temp;
}
int main()
{
Person p1(3,20);
Person p2(10,10);
Person p3 = p1 * p2;
p3.show();
return 0;
}