你的构造函数中,变量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();
}