作业1:算数运算符的重载
1.成员函数版本实现算术运算符的重载
2.全局函数版本实现算术运算符的重载
代码:
#include <iostream>
using namespace std;
//封装一个名为 Num 的类
class Num
{
//全局函数做友元
friend const Num operator-(const Num &L, const Num &R);
private:
int a; //左操作数a
int b; //右操作数b
public:
//Num的无参构造函数
Num() {}
//Num的有参构造函数
Num(int a, int b):a(a), b(b)
{}
//成员函数实现运算符的重载
const Num operator+(const Num &R) const
{
Num temp;
temp.a = a + R.a;
temp.b = b + R.b;
return temp;
}
//输出函数
void show()
{
cout << " a = " << a << " b = " << b << endl;
}
};
//全局函数实现运算符的重载
const Num operator-(const Num &L, const Num &R)
{
Num temp;
temp.a = L.a - R.a;
temp.b = L.b - R.b;
return temp;
}
int main()
{
//用 Num 实例化出 n1 n2 两个对象
Num n1(5,10);
Num n2(3,6);
cout << "******** n1 + n2 ********" << endl;
cout << endl;
Num n3 = n1 + n2; //成员函数实现运算符重载,求 和
n3.show();
cout << endl;
cout << "******** n1 - n2 ********" << endl;
cout << endl;
Num n4 = n1 - n2; //成员函数实现运算符重载,求 差
n4.show();
return 0;
}
效果图: