你需要运算符重载么?还是用函数实现加减运算?我下面的程序没有用到运算符重载
rational.h //头文件
#ifndef _rational_h
#define _rational_h
#include
using namespace std;
class Rational {
private:
int num;
int den;
void ReductFraction(); //将有理数化简成最简形式
public:
Rational(int a = 0, int b = 1) : num(a), den(b) { if (b == 0) cout << "分母为0!\n" ; }
void add(const Rational &r1, const Rational &r2);
void multi(const Rational &r1, const Rational &r2);
void display() { cout << num << '/' << den;}
};
#endif
rational.cpp //实现
#include "Rational.h“
//add函数将r1和r2相加,结果存于当前对象
void Rational::add(const Rational &r1, const Rational &r2) {
num = r1.num * r2.den + r2.num * r1.den;
den = r1.den * r2.den;
ReductFraction();
}
void Rational::multi(const Rational &r1, const Rational &r2)
{