
C++分数相加 operator有问题么?
#include<cstdlib>#include<iostream>#include"fraction.h"usingnamespacestd;intmain(inta...
#include <cstdlib>
#include <iostream>
#include "fraction.h"
using namespace std;
int main(int argc, char *argv[])
{
Fraction one, two;
cout<<"Please enter your first fraction: ";
cin>>one;
cout<<"You entered: "<<one<<endl;
cout<<"Please enter your second fraction: ";
cin>>two;
cout<<"You entered: "<<two<<endl;
cout<<"The sum of "<<one<<" and "<<two<<" is "<<one+two<<endl;
cout<<"The difference of "<<one<<" and "<<two<<" is "<<(one-two)<<endl;
cout<<"The product of "<<one<<" and "<<two<<" is "<<(one*two)<<endl;
cout<<"The quotient of "<<one<<" and "<<two<<" is "<<(one/two)<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
这是我的主程序 加减乘除无法运行...
因为太长 只能把部分拿出来问...
这是+的operator
Fraction operator+(Fraction& x, Fraction &y)
{
int n = x.num * y.denom + x.denom*y.num;
int d = x.denom * y.denom;
return Fraction(n,d);
}
这是fraction.h里面的
friend Fraction operator+(Fraction& x, Fraction &y);
化简没问题 就是+-*/出error了...
Fraction& Fraction::operator=(Fraction &x)
{
if(&x == this)
return *this;
num = x.num;
denom = x.denom;
return *this;
}
Fraction operator+(Fraction& x, Fraction &y)
{
int n = x.num * y.denom + x.denom*y.num;
int d = x.denom * y.denom;
return Fraction(n,d);
}
//省略-*%
ostream& operator<<(ostream& out, Fraction &y)
{
out<<y.num<<"/"<<y.denom;
return out;
}
istream& operator>>(istream& in, Fraction &y)
{
char junk;
in>>y.num>>junk>>y.denom;
y.reduce();
return in;
} 展开
#include <iostream>
#include "fraction.h"
using namespace std;
int main(int argc, char *argv[])
{
Fraction one, two;
cout<<"Please enter your first fraction: ";
cin>>one;
cout<<"You entered: "<<one<<endl;
cout<<"Please enter your second fraction: ";
cin>>two;
cout<<"You entered: "<<two<<endl;
cout<<"The sum of "<<one<<" and "<<two<<" is "<<one+two<<endl;
cout<<"The difference of "<<one<<" and "<<two<<" is "<<(one-two)<<endl;
cout<<"The product of "<<one<<" and "<<two<<" is "<<(one*two)<<endl;
cout<<"The quotient of "<<one<<" and "<<two<<" is "<<(one/two)<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
这是我的主程序 加减乘除无法运行...
因为太长 只能把部分拿出来问...
这是+的operator
Fraction operator+(Fraction& x, Fraction &y)
{
int n = x.num * y.denom + x.denom*y.num;
int d = x.denom * y.denom;
return Fraction(n,d);
}
这是fraction.h里面的
friend Fraction operator+(Fraction& x, Fraction &y);
化简没问题 就是+-*/出error了...
Fraction& Fraction::operator=(Fraction &x)
{
if(&x == this)
return *this;
num = x.num;
denom = x.denom;
return *this;
}
Fraction operator+(Fraction& x, Fraction &y)
{
int n = x.num * y.denom + x.denom*y.num;
int d = x.denom * y.denom;
return Fraction(n,d);
}
//省略-*%
ostream& operator<<(ostream& out, Fraction &y)
{
out<<y.num<<"/"<<y.denom;
return out;
}
istream& operator>>(istream& in, Fraction &y)
{
char junk;
in>>y.num>>junk>>y.denom;
y.reduce();
return in;
} 展开
2个回答
展开全部
以下程序供参考,如有问题,请hi本人
#include <cstdlib>
#include <iostream>
using namespace std;
class Fraction;
Fraction operator+(Fraction& x, Fraction &y) ;
class Fraction
{
private:
int num, denom;
public:
Fraction():num(0),denom(1) {}
Fraction(int n, int d):num(n),denom(d) {}
Fraction& Fraction::operator=(Fraction &x) ;
void reduce() {}
friend Fraction operator+(Fraction& x, Fraction &y) ;
friend ostream& operator<<(ostream& out, Fraction &y)
{
out<<y.num<<"/"<<y.denom;
return out;
}
friend istream& operator>>(istream& in, Fraction &y)
{
char junk;
in>>y.num>>junk>>y.denom;
y.reduce();
return in;
}
};
Fraction& Fraction::operator=(Fraction &x)
{
if(&x == this)
return *this;
num = x.num;
denom = x.denom;
return *this;
}
Fraction operator+(Fraction& x, Fraction &y)
{
int n = x.num * y.denom + x.denom*y.num;
int d = x.denom * y.denom;
return Fraction(n,d);
}
int main(int argc, char *argv[])
{
Fraction one, two;
cout<<"Please enter your first fraction: ";
cin>>one;
cout<<"You entered: "<<one<<endl;
cout<<"Please enter your second fraction: ";
cin>>two;
cout<<"You entered: "<<two<<endl;
cout<<"The sum of "<<one<<" and "<<two<<" is "<<one+two<<endl;
//cout<<"The difference of "<<one<<" and "<<two<<" is "<<(one-two)<<endl;
//cout<<"The product of "<<one<<" and "<<two<<" is "<<(one*two)<<endl;
//cout<<"The quotient of "<<one<<" and "<<two<<" is "<<(one/two)<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
class Fraction;
Fraction operator+(Fraction& x, Fraction &y) ;
class Fraction
{
private:
int num, denom;
public:
Fraction():num(0),denom(1) {}
Fraction(int n, int d):num(n),denom(d) {}
Fraction& Fraction::operator=(Fraction &x) ;
void reduce() {}
friend Fraction operator+(Fraction& x, Fraction &y) ;
friend ostream& operator<<(ostream& out, Fraction &y)
{
out<<y.num<<"/"<<y.denom;
return out;
}
friend istream& operator>>(istream& in, Fraction &y)
{
char junk;
in>>y.num>>junk>>y.denom;
y.reduce();
return in;
}
};
Fraction& Fraction::operator=(Fraction &x)
{
if(&x == this)
return *this;
num = x.num;
denom = x.denom;
return *this;
}
Fraction operator+(Fraction& x, Fraction &y)
{
int n = x.num * y.denom + x.denom*y.num;
int d = x.denom * y.denom;
return Fraction(n,d);
}
int main(int argc, char *argv[])
{
Fraction one, two;
cout<<"Please enter your first fraction: ";
cin>>one;
cout<<"You entered: "<<one<<endl;
cout<<"Please enter your second fraction: ";
cin>>two;
cout<<"You entered: "<<two<<endl;
cout<<"The sum of "<<one<<" and "<<two<<" is "<<one+two<<endl;
//cout<<"The difference of "<<one<<" and "<<two<<" is "<<(one-two)<<endl;
//cout<<"The product of "<<one<<" and "<<two<<" is "<<(one*two)<<endl;
//cout<<"The quotient of "<<one<<" and "<<two<<" is "<<(one/two)<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
2009-03-23
展开全部
是编译出错,还是运行处错,
楼主也不写清楚
你要把具体错误贴出来,别人才能为你修改,原因在于你这只有部分程序!
楼主也不写清楚
你要把具体错误贴出来,别人才能为你修改,原因在于你这只有部分程序!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询