#include<iostream>using namespace std;class Fract{public:Fract(int a=0,int b=1){num=a;den=b;}int gcd();Fract add(Fract f);void show();private:int num,den;};int gcd(int m,int n){int r;if(m<n){r=m;m=n;n=r;}while(r=m%n){m=n;n=r;}return n;}Fract Fract::add(Fract f){Fract sum;sum.den=den*f.den;sum.num=f.den*num+den*f.num;int x=gcd(sum.num,sum.den);sum.num=sum.num/x;sum.den=sum.den/x;return sum;}void Fract::show(){cout<<num<<"/"<<den<<endl;}int main(){Fract f1(1,5),f2(7,20),f3;f3=f1.add(f2);f3.show();return 0;}
2 回答

楊魅力
TA貢獻1811條經(jīng)驗 獲得超6個贊
你在類Fract里申明了一個公有函數(shù)int gcd(); 但是沒有實現(xiàn)。又定義實現(xiàn)了一個全局函數(shù)
int gcd(int m,int n),在Fract Fract::add(Fract f) 函數(shù)的實現(xiàn)里int x=gcd(sum.num,sum.den);
這個會調(diào)用類 Fract里申明的函數(shù)int gcd(); 參數(shù)不符,就會報錯。
- 2 回答
- 0 關(guān)注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消