C++友元函数的问题,主函数调用plus的时候编译器报错是plus不明确了,求解 50

#include<iostream>usingnamespacestd;intgcd(inta,intb){while(b!=0){intt=a;a=b;b=t%b;}r... #include<iostream>

using namespace std;
int gcd(int a, int b)
{
while (b != 0)
{
int t = a;
a = b;
b = t%b;
}
return a;
}

class F{

friend void output(const F&);
friend F plus(const F&, const F&);

private:

int num;
int den;
public:
F(int m = 0, int d = 1)
{
num = m;//分子
den = d ? d : 1;//分母
}

};

void output(const F&f)
{
if (f.num*1.0 / f.den < 0)
cout << "-";
cout << abs(f.num);
if (f.num != 0 && f.den != 1)
cout << "/" << abs(f.den);

}

F plus(const F & a, const F & b)
{
int m = a.num*b.den + b.num*a.den;
int d = a.den*b.den;

int t = gcd(m,d);
F tmp;
tmp.num = m / t;
tmp.den = d / t;
return tmp;

}

int main()
{
F a(2, 3), b(-4, 3);
F A;
output(plus(a, b));//??????
getchar();
return 0;
}
展开
 我来答
百度网友9de5b9a
2014-09-11 · TA获得超过894个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:459万
展开全部
应该是
F tmp;
tmp.num = m / t;
tmp.den = d / t;
return tmp;问题,F 没有拷贝构造函数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式