gpt4 book ai didi

c++ - 分数运算符重载

转载 作者:行者123 更新时间:2023-11-30 01:48:43 25 4
gpt4 key购买 nike

我是 C++ 的新手,我遇到了运算符重载的问题。我刚刚在头文件中实现了这些功能。我想将两个最简单的小数形式相加。我实现了一个 gcd 以进行简化并实现了运算符 + 以将它们加在一起,但是我在运算符 + 中的部分出错了。错误在fraction add(f1.getNum1()) f1 被高亮显示:“没有与参数列表匹配的构造 (fraction::fraction) 实例,类型为 (int,int)”这是代码:

a& operator+=(const a& f1,const a& f2){
a add(f1.getNum1()*f2.getDen2()+f2.getNum2()*f1.getDen1(),f1.getDen1()*f2.getDen2());
return add;
}

#endif

我在 main.cpp 代码中有另一个问题没有运算符“<<”匹配这些操作数操作数。我初始化构造函数。现在我想添加到小数。但是我得到一个错误对于结果左侧的 cout“<<”:result=fractional1+fractional2; cout << num1 <<"/"<< den1 <<"+"<<num2<<"/"<< den2 <<" = "<<result <<endl;

最佳答案

在您的 operator+= 中,您声明了一个分数:

fraction add(f1.getNum1()*f2.getDen2()+f2.getNum2()*f1.getDen1(),f1.getDen1()*f2.getDen2());

这是以下形式:

fraction a(int1, int2);

但是您还没有为带有两个 int 参数的 fraction 定义任何构造函数。编译器(正确地)告诉您它不知道您的意思。

关于c++ - 分数运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com