1、成员函数版本和全局函数版本实现算术运算符的重载
程序代码:
#include <iostream>
using namespace std;
//封装一个 名叫Number 的类
class Number
{
//全局函数做友元,让一些函数访问一个类的私有数据成员
friend const Number operator-(const Number &L, const Number &R);
private:
int a;//左操作数
int b;//右操作数
public:
//Number 无参构造函数
Number(){}
//Number 有参构造函数
Number(int a,int b) : a(a),b(b)
{}
// 成员函数版本 +号 运算符重载
const Number operator+(const Number &R) const
{
Number temp;
temp.a = a + R.a;
temp.b = b + R.b;
return temp;
}
void show()
{
cout << "a = " << a << " b = " << b << endl;
}
};
// 全局函数版本 -号 运算符重载
const Number operator-(const Number &L, const Number &R)
{
Number temp;
temp.a = L.a - R.a;
temp.b = L.b - R.b;
return temp;
}
int main()
{
Number n1(3,6);
Number n2(4,7);
// 使用成员函数版本
Number n3 = n1 + n2;
n3.show();
// 使用全局函数版本
Number n4 = n1 - n2;
n4.show();
return 0;
}
运行结果:
2、思维导图