Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分数运算符重载 我是C++的新手,我有一个操作符重载问题。我刚刚实现了头文件中的函数。我想将两个最简单形式的分数相加。为了简化,我实现了gcd,为了相加,我实现了运算符+。但运算符+中的部分有一个错误。错误是分数相加(f1.getNum1())f1高亮:“没有构造实例(分数::分数)与argumentlist匹配,类型为(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_C++_Operator Overloading_Fractions - Fatal编程技术网

分数运算符重载 我是C++的新手,我有一个操作符重载问题。我刚刚实现了头文件中的函数。我想将两个最简单形式的分数相加。为了简化,我实现了gcd,为了相加,我实现了运算符+。但运算符+中的部分有一个错误。错误是分数相加(f1.getNum1())f1高亮:“没有构造实例(分数::分数)与argumentlist匹配,类型为(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

分数运算符重载 我是C++的新手,我有一个操作符重载问题。我刚刚实现了头文件中的函数。我想将两个最简单形式的分数相加。为了简化,我实现了gcd,为了相加,我实现了运算符+。但运算符+中的部分有一个错误。错误是分数相加(f1.getNum1())f1高亮:“没有构造实例(分数::分数)与argumentlist匹配,类型为(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,c++,operator-overloading,fractions,C++,Operator Overloading,Fractions,main.cpp code无运算符“在您的运算符+=中,您声明了一个分数: fraction add(f1.getNum1()*f2.getDen2()+f2.getNum2()*f1.getDen1(),f1.getDen1()*f2.getDen2()); 其形式如下: fraction a(int1, int2); 但是您尚未为分数定义任何构造函数,该构造函数接受两个int参数。编译器(正确地)告诉您它不知道您的意思。在运算符+=中,您声明了一个分数: fraction add(f1.

main.cpp code无运算符“在您的
运算符+=
中,您声明了一个分数:

fraction add(f1.getNum1()*f2.getDen2()+f2.getNum2()*f1.getDen1(),f1.getDen1()*f2.getDen2());
其形式如下:

fraction a(int1, int2);

但是您尚未为
分数
定义任何构造函数,该构造函数接受两个
int
参数。编译器(正确地)告诉您它不知道您的意思。

运算符+=
中,您声明了一个分数:

fraction add(f1.getNum1()*f2.getDen2()+f2.getNum2()*f1.getDen1(),f1.getDen1()*f2.getDen2());
其形式如下:

fraction a(int1, int2);

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

您的
分数(int num1、int num2、int den1、int den2)
函数在设置它们之前使用
this->num1
this->num2
this->den2
this->den2
的值。dup?:)--将错误的参数传递给构造函数您的
分数(int num1、int num2、int den1、int den2)
函数在设置它们之前使用
this->num1
this->num2
this->den2
this->den2
的值。dup?:)--将错误的参数传递给构造函数,或者您可以再次检查代码。我还有一个问题:(我把它附在报告末尾code@emre:您正在尝试同时执行两件事:添加两个分数,然后使用插入运算符将分数发送到
cout
您能再次检查代码吗?。我还有一个问题:(我把它附在报告末尾code@emre:您试图同时执行两件事:添加两个分数,并使用插入运算符(