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、思维导图