这个代码问题出现在哪里? 总是出现提错?关于类的问题。
要求就是要有一个ifraction子类,然后继承Fraction里的东西,还要有一个convertF来把假分数换算成带分数。程序代码:
#include "iostream" using namespace std; class Fraction { protected: int fenzi; int fenmu; double valud; public : Fraction(int m,int n) { Set(m,n); } Fraction(int k) { Set(k,1); } Fraction() { Set(0,1); } double GetValue() { return valud; } void GetFraction(int *Fenzi, int *Fenmu) { *Fenzi = fenzi; *Fenmu=fenmu; } void Set(int Fenzi,int Fenmu) { fenzi=Fenzi; fenmu=Fenmu; if (Fenmu) valud=Fenzi/Fenmu; } static Fraction Addition(Fraction m,Fraction n) { int a,b,c,d; m.GetFraction(&a,&b); n.GetFraction(&c,&d); Fraction result; if(b==d) result.Set(a+c,b); else result.Set(a*d+b*c,b*d); return result; } static Fraction Subtraction(Fraction m,Fraction n) { int a,b,c,d; m.GetFraction(&a,&b); n.GetFraction(&c,&d); Fraction result; if(b==d) result.Set(a-c,b); else result.Set(a*d-b*c,b*d); return result; } static Fraction Multiplication(Fraction m,Fraction n) { int a,b,c,d; m.GetFraction(&a,&b); n.GetFraction(&c,&d); Fraction result; result.Set(a*c,b*d); return result; } static Fraction Division(Fraction m,Fraction n) { int a,b,c,d; m.GetFraction(&a,&b); n.GetFraction(&c,&d); Fraction result; result.Set(a*d+b*c,b*d); return result; } }; class iFraction:public Fraction { int number; public: iFraction() { number=0;fenzi=0;fenmu=1; } iFraction(int Fenzi,int Fenmu,int Number) { fenzi=Fenzi; fenmu=Fenmu; number=Number; } int GetNumber() { return number; } void SetNumer(int n) { number=n; } void Show() { if (number) cout<<number<<"#<"<<fenzi<<'/'<<fenmu<<'>'<<endl; else cout<<"<"<<fenzi<<'/'<<fenmu<<'>'<<endl; } }; iFraction convertF(Fraction f) { int a,b; f.GetFraction(&a,&b); iFraction i; i.SetNumer(a/b); i.Set(a-i.GetNumber()*b,b); return i; } int main() { Fraction test1(11,3); Fraction test2(6,3); iFraction test3; test3=convertF(Fraction::Addition(test1,test2)); test3.Show(); }