C++ Rational类,就是分数类,如何实现约分?

2024-11-25 02:26:19
推荐回答(1个)
回答1:

你的构造函数中,变量a,b是哪里来的,你的约分函数中根本就没有把ab传出来

约分函数按这你样的写法,在里面再写两句SetNumerator(a);SetDenominator(b);
基本就可以把约分函数当成构造函数了
如果你想让约分函数在类外面可以调用的话,约分函数根本没必要带参数,里面的再次赋值完全是多此一举,你完全可以在约分函数里面去调用私有变量,假如numer,denom就是私有变量名,那么这个函数可以写成
void Rational::Reduce() {
int tmp=gcd(numer, denom);
numer/=tmp;
denom/=tmp;
}
这样在构造函数里面
Rational::Rational(int numer, int denom) {
//构造函数

SetNumerator(a);
SetDenominator(b);
Reduce();

}