分数类的加法里,我想做成 c = "1/3" + "2/3"的形式。
int main()
{
frac b(1,4), c;
c = "1/2" + "1/4";
cout << c;
return 0;
}
fraction.h:
__frac(int num = 0, int den = 1);//构造1
frac(char* s);//构造2
friend frac operator + (const frac &x, const frac &y);__//重载+
fraction.cpp:
frac operator + (const frac &x, const frac &y)
{
frac temp;
temp.num = x.num * y.den + y.num * x.den;
temp.den = x.den * y.den;
temp.standard();
return temp;
}
不知道为什么报错:“+”:不能添加两个指针
求大神指导指导
问题在于"1/2" + "1/4"是两个const char类型的指针相加,并不会调用你重载的方法,如果需要调用你重载的方法应该这样写
frac a(1,2), b(1,4), c;
c = a + b;
#include<iostream>
using namespace std;
class Frac
{
private:
int num;
int den;
public:
Frac(int n=0,int d=1)
{
num=n;
den=d;
}
friend Frac operator+(const Frac& x,const Frac& y)
{
Frac temp;
temp.num=x.num*y.den+y.num*x.den;
temp.den=x.den*y.den;
// temp.standard();
return temp;
}
friend ostream& operator<<(ostream& os,Frac f)
{
os<<f.num<<"/"<<f.den<<"\n";
}
};
int main()
{
Frac a(1,2),b(1,4),c;
c=a+b;
cout<<c;
return 0;
}