【发布时间】:2015-07-18 18:08:06
【问题描述】:
我是 C++ 新手,遇到运算符重载问题。我刚刚实现了头文件中的函数。我想将两个最简单的小数形式相加。我实现了一个 gcd 来简化并实现了 operator + 用于 addinf 一起但我在 operator+ 中的部分出现错误。错误在fraction add(f1.getNum1()) f1 is highligted:“没有构造实例 (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;
【问题讨论】:
-
您的
fraction(int num1, int num2, int den1, int den2)函数在设置之前使用this->num1、this->num2、this->den2和this->den2的值。 -
重复? :) stackoverflow.com/q/30000121/86967 -- 将错误的参数传递给构造函数
标签: c++ operator-overloading fractions